Как суммировать строки в Excel с помощью VBA - PullRequest
0 голосов
/ 27 июня 2018

Я создаю свой первый модуль, используя VBA, и не знаю, как суммировать строки. Мне было интересно, если кто-нибудь может мне помочь. У меня есть файл транзакций, картинка прилагается:

enter image description here

Я пытаюсь вставить разрыв (пустую строку) между группами дат (сгруппировать все транзакции по определенной дате), а затем сумму каждой суммы в разрыве под каждым столбцом для соответствующей даты. Мой код выглядит следующим образом, но я застрял на том, как создать сумму, так как я не уверен в синтаксисе. Вот код, который я придумал:

    Sub InsertRowsBetweenDates()
'
' InsertRowsBetweenDates Macro
' Insert Rows in between two dates that are not equal
'
Dim x As Integer
Dim y As Integer
Dim row1 As Range
Dim row2 As Range
Dim t As Integer 'tracking how many cells to add together


'define x as cell row value
x = 2
'define y as cell row value
y = 3
'start tracker at 0
t = 0
'row 1 and row 2 get their values
Set row1 = Cells(x, 4)
Set row2 = Cells(y, 4)

'Do until there are no more entries in the worksheet (or really until row 1 has no value)
Do Until row1.Value = False
    x = x + 1
    y = y + 1
    Set row1 = Cells(x, 4)
    Set row2 = Cells(y, 4)
    t = t + 1

    'If row 1 and 2 don't equal each other, insert a row above row 2
    If row1 <> row2 Then
        row2.EntireRow.Insert Shift:=xlDown

        'sum up t rows for subtotal and tax [THIS IS WHAT IM STUCK ON]


        'skip the break            
        x = x + 2
        y = y + 2
        Set row1 = Cells(x, 4)
        Set row2 = Cells(y, 4)
        t = 0

    End If
Loop

End Sub

Как видите, перерыв работает, хотя он работает только для этого файла, поскольку строки и позиции столбцов жестко закодированы, но это начало. На данный момент у меня есть трекер, чтобы отслеживать, сколько строк было подсчитано, и я думаю, что мне просто нужно вставить код для суммирования строк. Как мне добиться этого?

1 Ответ

0 голосов
/ 27 июня 2018

Я думаю, что вы движетесь совсем не по тому пути. Я бы этого не сделал, если бы у меня полностью и полностью не было

Почему?

Потому что вы складываете данные вместе с отчетом. Что происходит, когда кому-то нужно вставить строку? Что происходит, когда кто-то должен поддерживать ваш код?

Посмотрите на следующие опции: 1. Используйте источник в качестве таблицы и суммируйте с помощью сводной таблицы 2. Добавьте столбец и используйте функцию SUMIF

Этими способами вы вообще избегаете использовать VBA и все же можете получать нужные вам отчеты. Удачи!

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