2011-04-29 102 views
2

我应该如何解决这个代码,因为它抛出:“对象不支持此属性或方法”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 

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

回答

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 
5

尝试

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