Как искать все заголовки листов, начиная с листа, и суммировать одну и ту же ячейку? - PullRequest
0 голосов
/ 07 февраля 2019

Пользователи могут дублировать лист с именем " DB ", и в результате получается что-то вроде " DB (2) " " DB (3) " и т. Д.

В ячейке A1 рабочего листа " MAIN " я хочу суммировать ячейки E4 из всех дублированных листов.

Есть ли способ перебрать все рабочие таблицы и суммировать ячейки E4?

1 Ответ

0 голосов
/ 07 февраля 2019

сумма дубликатов

код

Sub SumOfDuplicates()

    Const cSheet As String = "MAIN"     ' Target Worksheet Name
    Const cStrSheet As String = "DB ("  ' Compare String
    Const cCellSource As String = "E4"  ' Source Cell Range
    Const cCellTarget As String = "A1"  ' Target Cell Range

    Dim ws As Worksheet   ' Current Source Worksheet
    Dim dblSum As Double  ' Value Accumulator

    ' In This Workbook (i.e. the workbook containing this code)
    With ThisWorkbook
        ' If you also want to add the value from Worksheet "DB" then
        ' uncomment the following line.
        'If IsNumeric(.Worksheets("DB").Range(cCellSource)) Then _
                dblSum = .Worksheets("DB").Range(cCellSource)
        ' Loop through all the worksheets.
        For Each ws In .Worksheets
            ' Check if Current Source Worksheet's name starts with
            ' Compare String.
            If Left(ws.Name, Len(cStrSheet)) = cStrSheet Then
                ' Check if Source Cell Range contains a numeric value.
                If IsNumeric(ws.Range(cCellSource)) Then
                    ' Add value of current Source Cell Range
                    ' to Value Accumulator.
                    dblSum = dblSum + ws.Range(cCellSource)
                End If
            End If
        Next
        ' Write the value of Value Accumulator to Target Cell Range
        ' (in Target Worksheet).
        .Worksheets(cSheet).Range(cCellTarget) = dblSum
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...