#vba #excel #macros
#vba #excel #макросы
Вопрос:
У меня есть еще вопросы по форматированию
Я смотрю на лист транзакций, который имеет индекс # (столбец C) и счет # (столбец E). Мне нужно суммировать все записи во всем индексе, а затем иметь возможность суммировать все записи в учетной записи. У меня есть некоторый код, с которым я играл, но я не могу понять, как суммировать записи учетной записи после получения итогов индекса.
Sub TotalIndex()
'
Dim iRow As Integer, iCol As Integer
Dim oRng As Range
Dim fRow As Integer
Dim lRow As Integer
Set oRng = Range("c4")
iRow = oRng.Row
iCol = oRng.Column
fRow = iRow
Do
'
If Cells(iRow 1, iCol) <> Cells(iRow, iCol) Then
Cells(iRow 1, iCol).EntireRow.Insert shift:=xlDown
iRow = iRow 1
Range("j" amp; iRow).Font.Bold = True
Range("j" amp; iRow).Value = "Total"
Range("k" amp; iRow).Font.Bold = True
lRow = iRow - 1
Range("k" amp; iRow).Value = "=sum(k" amp; CStr(fRow) amp; ":k" amp; CStr(lRow) amp; ")"
iRow = iRow 1
fRow = iRow
Else
iRow = iRow 1
End If
'
Loop While Not Cells(iRow, iCol).Text = ""
'
End Sub
Sub TotalAccount()
'
Dim iRow As Integer, iCol As Integer
Dim oRng As Range
Dim fRow As Integer
Dim lRow As Integer
Set oRng = Range("e4")
iRow = oRng.Row
iCol = oRng.Column
fRow = iRow
Dim laRow As Long
Dim laCol As Long
laRow = Cells.Find(What:="*", _
After:=Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Do
'
If Cells(iRow 1, iCol) <> Cells(iRow, iCol) Then
Cells(iRow 1, iCol).EntireRow.Insert shift:=xlDown
iRow = iRow 1
Range("j" amp; iRow).Font.Bold = True
Range("j" amp; iRow).Value = "Total"
Range("k" amp; iRow).Font.Bold = True
lRow = iRow - 1
Range("k" amp; iRow).Value = "=sum(k" amp; CStr(fRow) amp; ":k" amp; CStr(lRow) amp; ")"
iRow = iRow 1
fRow = iRow
Else
iRow = iRow 1
End If
'
Loop While Not Cells(iRow, iCol).Text = ""
'
End Sub
У меня код разделен на две функции. Одна из них суммирует индекс, а затем другая функция «пытается» суммировать учетные записи внутри каждого индекса.
Есть предложения?
Комментарии:
1. Итак, как вы можете видеть, как только я нажимаю на следующий индекс, он завершается. Смотрите, я знаю, в чем проблема… Но я пытаюсь понять, как бы я перешел к следующему индексу… На картинке это биология. Я знаю, как это происходит, когда код встречает ячейку, в которой нет ничего, он останавливается.
2. Почему вы используете макрос для этого? Excel имеет встроенную возможность группировки / выделения, и вы можете использовать эту
Subtotal()
функцию для выполнения того, что вам нужно.
Ответ №1:
Посмотрите на этот учебник, он делает то, что вы хотите сделать, в соответствии с предложением Мусорщика. https://www.youtube.com/watch?v=QuGIlPopVms
Комментарии:
1. Это должен быть комментарий, а не ответ