我已经阅读了Application.WorksheetFunction.Sum
,但我想知道是否有一个Range-object的特定方法或属性来完成这项工作。我已经调查了Range的成员,但我找不到任何东西。
有没有办法在不使用工作表功能的情况下添加?而且无需遍历每个单元格。类似的东西:
Sub test()
Range("A1") = 1
Range("A2") = 0
Range("A3") = 2
Range("A4") = Range("A1:A3").Add
MsgBox Range("A4")
End Sub
输出3。
答案 0 :(得分:2)
一般来说,还有第三种方法,你没有提到:
Application.Sum
它与WorksheetFunction.Sum
略有不同,因为它更加离散 - 它不会抛出MsgBox的错误,即使它应该。
这样的事情只会导致MsgBox
引发2个错误,你会在即时窗口中得到2个错误:
Option Explicit
Public Sub WaysOfSumming()
'This is Div/0 Error:
Range("A1").Formula = "=5/0"
Debug.Print Excel.WorksheetFunction.Sum(Range("A1"), 3, 5)
Debug.Print Application.Sum(Range("A1"), 3, 5)
Debug.Print Excel.WorksheetFunction.Sum(Range("A1"), 3, 5)
Debug.Print Application.Sum(Range("A1"), 3, 5)
End Sub
答案 1 :(得分:2)
继续,第四种方式:o)
evaluate(join(application.transpose(range("a1:a5").Value),"+"))