Excel VBA:不能通过范围()的Sum()

我应该如何解决这个代码,因为它抛出:“该对象不支持此属性或方法”

Sub macro1() Workbooks("OUTPUT.xls").Sheets("Sheet1").Activate ActiveSheet.Range("B4") = _ Workbooks("INPUT.xlsx").Sheets("Sheet1").Sum(Range("D40:D50")) End Sub 

上面的代码工作正常时调整为:

 Sub macro2() Workbooks("OUTPUT.xls").Sheets("Sheet1").Activate ActiveSheet.Range("B4") = _ Workbooks("INPUT.xlsx").Sheets("Sheet1").Range("D40") End Sub 

然而,这是不可接受的解决scheme,因为我想Sum()超过范围()如在macro1()中所述。

WorkSheet没有求和函数,请尝试使用WorksheetFunction :

 Sub macro1() Workbooks("OUTPUT.xls").Sheets("Sheet1").Activate ActiveSheet.Range("B4") = _ Application.WorksheetFunction.Sum(Workbooks("INPUT.xlsx").Sheets("Sheet1").Range("D40:D50")) End Sub 

尝试

 ActiveSheet.Range("B4").Formula = Application.WorksheetFunction.Sum(Range("D40:D50"))