excel - VBA总和动态范围问题

标签 excel vba syntax-error

尽管下面的代码之前执行得很好,但以下代码现在却获得了应用程序或用户定义的错误:

sum_range = Application.Sum(ThisWorkbook.Worksheets("Shifting").Range(Cells(20, col), Cells(rw - 1, col)))
我应该更改什么以正确地将动态范围求和而没有错误?
编辑:
语法错误,col被分配为0,因此是错误。解决如下。

最佳答案

您描述的错误的最常见原因是将数字<1指定为行或列。因此,@ Foxfire的问题。但是,在您的一些代码中,缺少单元格的限制非常突出。它们不会自动与范围在同一张纸上。实际上,Excel使用相反的逻辑。
因为您说过该代码以前曾经可以使用,而现在不起作用,原因可能是您调用该代码时现在有一个处于 Activity 状态的工作表。修改您的代码以指定工作表。观察将每个单元格地址连接到With语句而不是ActiveSheet的前导时期。

With ThisWorkbook.Worksheets("Shifting")
    sum_range = Application.Sum(.Range(.Cells(20, col), .Cells(rw - 1, col)))
End With

关于excel - VBA总和动态范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63963840/

相关文章:

excel - 在 Excel VBA 中对数字求和时如何数到 10?

excel - VBA 使用 OFT 模板从 Excel 发送电子邮件 - 禁止自动签名

excel - 在另一个工作簿中复制工作簿时的 VBA Excel 问题 - 应用程序在复制特定文件时挂起

python - 简单if语句的Python语法错误

sql - VBA:使用两个参数调用 SQL Server 存储过程

excel - 有没有办法只调整某些具有 vba 图像的特定单元格的单元格大小?

perl - 如何在其他列之间插入列 (Perl Spreadsheet::WriteExcel)

vba - 更改变量的字体颜色作为单元格中文本的一部分

python - ubuntu 12.04上的pip3-语法错误

c++ - 用户创建的 header 导致 C2061 : Syntax Error : Identifier 'classname'