Использование SUM () в VBA

Если у меня есть набор ячеек на листе, который я хочу добавить, я могу использовать формулу:

=SUM(Sheet1!A1:A10)

Чтобы сделать это в подпрограмме, я бы использовал:

Sub example1()
    Dim r As Range, v As Variant

    Set r = Sheets("Sheet1").Range("A1:A10")
    v = Application.WorksheetFunction.Sum(r)
End Sub

Однако, если я хочу добавить одну ячейку на нескольких листах, я использую формулу:

=SUM(Sheet1:Sheet38!B2)

В VBA эта строка терпит неудачу, как объяснено вУкажите диапазон Excel для листов в VBA:

Sub dural()
    v = Application.WorksheetFunction.Sum("Sheet1:Sheet3!B2")
End Sub

У меня есть два обходных пути. Я могу суммировать, программируя цикл:

Sub example2()
    Dim i As Long
    Dim v As Variant

    v = 0
    For i = 1 To 38
        v = v + Sheets(i).Range("B2")
    Next i
End Sub

или с помощьюEvaluate():

v = Evaluate("Sum(Sheet1:Sheet3!B2)")

Можно ли использоватьApplication.WorksheetFunction.Sum() для этого расчета, или я должен придерживаться цикла?

Ответы на вопрос(2)

Ваш ответ на вопрос