Excel VBA:不能在Range()上求和()

时间:2011-04-29 08:39:24

标签: excel vba

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

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

然而,这是不可接受的解决方案,因为我想在Range()上使用Sum(),如macro1()中所述。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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