2017-06-12 63 views
0

嗨,我現在正在嘗試使用VBA aka使用SUBTOTAL在Excel中求和篩選行的可見值。我的問題是,行數會根據過濾器而改變。我試圖編寫一個循環遍歷行的代碼,直到它碰到空白單元格,並將可見行分小計。任何幫助,將不勝感激通過在Excel中篩選出的行進行求和

Sub Test1() 
    Dim x As Integer 
    NumRows = Range("K15", Range("K15").End(xlDown)).Rows.Count 
    Range("K15").Select 
    For x = 1 To NumRows 
     H14 = SUBTOTAL(9,"K15" : "NumRows") 
     ActiveCell.Offset(1, 0).Select 
    Next 
End Sub 

回答

0

是這樣的?你應該檢查起始行(這裏是15)和寫入總和的單元格(在這種情況下爲Cells(14,8),id est,H8)。定義工作表通常也很有幫助(在這種情況下爲Data)。

Sub Test1() 
    Dim x As Long 
    Dim lMySum As Long 
    Dim NumRows As Long 

    lMySum = 0 
    NumRows = Worksheets("Data").Cells(15, 11).End(xlDown).Row 
    For x = 15 To NumRows 
     If Not (Worksheets("Data").Rows(x).EntireRow.Hidden) Then 
      lMySum = lMySum + Worksheets("Data").Cells(x, 11).Value 
     End If 
    Next 
    Worksheets("Data").Cells(14, 8) = lMySum 
End Sub 
+0

感謝您的迴應!因此,我將名稱「數據」更改爲我從中繪製數據的工作表,但是我意識到我的編號不是從K15開始,而是從始於K15的下一個開始,始終更改。你碰巧有任何快速修復? –

+0

'對於x = 16到NumRows'如果我正確地打開你。 – CMArg

+0

我現在得到一個類型不匹配錯誤,但我檢查了表的值,它們都是整數,所以我不太確定這個錯誤來自哪裏? –

相關問題