通过Excel中的筛选行进行求和

时间:2017-06-12 19:11:10

标签: excel vba excel-vba

您好我正在尝试使用VBA又使用SUBTOTAL对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

1 个答案:

答案 0 :(得分:0)

这样的东西?你应该检查开始行(这里是15)和写入sum的单元格(在这种情况下为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