Как получить сумму в одном столбце для определенных значений в другом VBA Excel - PullRequest
0 голосов
/ 03 декабря 2018

Я довольно новичок в VBA и не могу обернуть голову вокруг следующего:

Screenshot from table

Мне понадобится сумма Accom Revenue Total за MarketSegment,Они должны быть сохранены в переменной, чтобы я мог сложить их с суммой того же MarketSegment в другой книге.

Заранее спасибо, ребята.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Для этого ответа я использую Лист1 (включает Первичные данные)

enter image description here

и Лист 2 (включает итоги)

enter image description here

Попробуйте:

Option Explicit

Sub test()

    Dim i As Long, j As Long, LR1 As Long, LR2 As Long

    Dim Segment As String

    Dim Total As Double

    Dim Exist As Boolean

    LR1 = Sheet1.Cells(Sheet1.Rows.Count, "B").End(xlUp).Row

    For i = 2 To LR1

        Exist = True
        Segment = Sheet1.Range("B" & i).Value
        Total = Application.WorksheetFunction.SumIf(Sheet1.Range("B2:B" & LR1), Sheet1.Range("B" & i).Value, Sheet1.Range("D2:D" & LR1))

        LR2 = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row

        If LR2 = 1 Then
            Sheet2.Range("A2").Value = Segment
            Sheet2.Range("A2").Offset(0, 1).Value = Total
        Else
            LR2 = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row
            For j = 2 To LR2
                If Sheet2.Range("A" & j).Value <> Segment Then
                    Exist = False
                Else
                    Exist = True
                    Exit For
                End If
            Next j

                If Exist = False Then
                    Sheet2.Range("A" & LR2 + 1).Value = Segment
                    Sheet2.Range("A" & LR2 + 1).Offset(0, 1).Value = Total
                End If
        End If

    Next i

End Sub
0 голосов
/ 03 декабря 2018

Возможно, одним из решений может быть использование встроенных в Excel функций (приложение рабочего листа) "= sumifs ()".И если вы хотите сложить несколько листов, вы можете создать сумму «= sumifs ()».

myVarFromWB1 = WorksheetFunction.sumifs (…) myVarFromWB2 = WorksheetFunction.sumifs (…)
SumOfVar= myVarFromWB1 + myVarFromWB2

Я надеюсь, что мой ответ помог вам.Хорошего дня.

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