2016-10-14 51 views
0

我有更多的格式問題VBA宏,格式的Excel工作表由Index來總結和賬戶

我在看有指數#事務片的(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" & iRow).Font.Bold = True 
    Range("j" & iRow).Value = "Total" 
    Range("k" & iRow).Font.Bold = True 
    lRow = iRow - 1 
    Range("k" & iRow).Value = "=sum(k" & CStr(fRow) & ":k" & CStr(lRow) & ")" 
    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" & iRow).Font.Bold = True 
     Range("j" & iRow).Value = "Total" 
     Range("k" & iRow).Font.Bold = True 
     lRow = iRow - 1 
     Range("k" & iRow).Value = "=sum(k" & CStr(fRow) & ":k" & CStr(lRow) & ")" 
     iRow = iRow + 1 
     fRow = iRow 
    Else 
     iRow = iRow + 1 
    End If 

' 
Loop While Not Cells(iRow, iCol).Text = "" 
' 
End Sub 

我把代碼分成兩個函數。總計索引的一個,然後另一個函數是「試圖」將每個索引內的帳戶總計。

Errors

有什麼建議?

+0

因此,您可以在那裏看到,一旦我點擊下一個索引,它就會退出。看到我知道問題出在哪裏......但我試圖弄清楚我將如何繼續前進到下一個索引......在生物學圖片中。我知道,當代碼遇到沒有內容的單元時,它會停止。 –

+0

爲什麼你使用宏來做到這一點? Excel內置了分組/劃線功能,你可以使用'Subtotal()'函數來完成你所需要的功能。 – Trashman

回答