Сумма одной и той же ячейки (C3) в каждом доступном листе в VBA - PullRequest
0 голосов
/ 12 января 2020

Я пытался использовать этот код, так как мне нужно суммировать от второго листа до доступного листа в рабочей книге

Result = Application.WorksheetFunction.Sum(Worksheets("Second SHEET:FINAL SHEET").Range("C3"))

1 Ответ

0 голосов
/ 12 января 2020

Я думаю, что вы ищете, это метод Application.Evaluate. Это дает вам возможность эмулировать вычисления, такие как:

=SUM('Second Sheet:Final Sheet'!C3)

. Чтобы вернуть 2-ую и последнюю рабочую таблицу, мы можем посмотреть на различные индексы в коллекции WorkSheets и построить допустимую строку для использования в Evalate:

Sub Test()

With ThisWorkbook
    Dim Nom2d As String: Nom2d = .Worksheets(2).Name
    Dim NomLw As String: NomLw = .Worksheets(.Worksheets.Count).Name
End With

Dim result As Double: result = Evaluate("SUM('" & Nom2d & ":" & NomLw & "'!C3)")

End Sub

Если вы не настроили WorkSheets их индексы, это должно сработать.


РЕДАКТИРОВАТЬ: Если ваши листы на самом деле называются Second SHEET и FINAL SHEET, это немного проще:

Dim result As Double: result = Evaluate("SUM('Second SHEET:FINAL SHEET'!C3)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...