总和可见细胞

时间:2015-09-14 01:30:21

标签: excel excel-vba vba

应用高级过滤器后,我只使用下面的代码对可见单元格求和,它运行良好。但是,在过滤器后面没有可见单元格时会显示错误。关于如何弥补错误的任何想法?

Sub sum ()
    Sheets("Sheet1").Select
    x = cells(Rows.Count, 8).End(xlUp).Row

    Sheets("Tax Invoice").Range("M55") = WorksheetFunction.Sum(Range("H7:H" & x).SpecialCells(xlCellTypeVisible))
End sub

1 个答案:

答案 0 :(得分:2)

在尝试计算总和之前计算可见行数:

Option Explicit

Public Sub sumTaxInvRng()
    Dim x As Long, vRng As Range

    With Sheets("Sheet1")
        x = .Cells(.Rows.Count, 8).End(xlUp).Row
        Set vRng = .Range("H7:H" & x).SpecialCells(xlCellTypeVisible)
    End With

    If vRng.Count > vRng.Columns.Count Then
        Sheets("Tax Invoice").Range("M55") = WorksheetFunction.Sum(vRng)
    End If
End Sub

此外,您不应为函数使用本机函数名称: Sub sum()