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