Excel VBA和动态范围问题

Excel VBA和动态范围问题,excel,vba,syntax-error,Excel,Vba,Syntax Error,下面的代码行现在获取应用程序或用户定义的错误,尽管它以前执行得很好: sum_range = Application.Sum(ThisWorkbook.Worksheets("Shifting").Range(Cells(20, col), Cells(rw - 1, col))) 我应该改变什么来正确地求和动态范围而不产生错误 编辑: 语法中出现错误,col被分配为0,因此出现错误。下面已解决。您所描述的错误的最常见原因是将数字

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

sum_range = Application.Sum(ThisWorkbook.Worksheets("Shifting").Range(Cells(20, col), Cells(rw - 1, col)))
我应该改变什么来正确地求和动态范围而不产生错误

编辑:


语法中出现错误,col被分配为0,因此出现错误。下面已解决。

您所描述的错误的最常见原因是将数字<1指定为行或列。因此就产生了@Foxfire的问题。然而,在您的代码位中,单元格的不合格性非常突出。它们不会自动与范围在同一张图纸上。事实上,Excel的工作逻辑正好相反

既然您说代码以前工作,现在不工作,那么原因可能是您现在在调用代码时有一个不同的工作表处于活动状态。修改代码以指定图纸。观察将每个单元格地址连接到
With
语句的前导句点,而不是连接到活动表的前导句点

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

执行此操作时,
rw
col
的值是多少?