我有一个宏,当任何单元格被更改时运行,并且我只想对所显示的单元格求和,所以如果有人过滤该表格,宏将运行并且只对可见单元格求和。
我找到了SpecialCells(xlCellTypeVisible)
功能,但我无法使其正常工作。
我对代码的想法是这样的:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rcells As Range
Dim sum as Double
sum = 0
For each Rcells In Range("A5:A65536").SpecialCells(xlCellTypeVisible)
sum = sum + Rcells.Value
Next Rcells
Sheets("aSheet").Range("B1").Value = sum
End Sub
我设法只对可见单元格求和,但它不会自动运行。
为什么不起作用?
答案 0 :(得分:2)
我的文章Trapping a change to a filtered list with VBA中的两个关键步骤,其中包括详细说明和示例文件:
SUBTOTAL
中添加了一个A1
公式,指向主表上要过滤的范围(即您要捕获的范围)过滤器)。Worksheet_Calculate()
事件,当主页上的更改过滤器时SUBTOTAL
公式更新时,会触发此事件。答案 1 :(得分:0)
查看小计功能。 enter = subtotal( 然后点击fx了解它是如何工作的。