每次打开filter时运行macros

我有一个macros,当任何单元格更改运行时,我只想汇总所显示的单元格,所以如果有人过滤表单macros将运行并只求和可见单元格。

我发现了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 

我设法只求和可见的单元格,但不能自动运行。

任何线索为什么不工作? 感谢您的帮助提前。

从我的文章的两个关键的两个步骤陷阱更改为过滤列表与VBA其中包括详细的说明和示例文件:

  1. 第二个虚拟工作表在A1添加一个SUBTOTAL公式,指向主工作表上正在过滤的范围(即您想要捕获filter的范围)。
  2. Worksheet_Calculate()事件被添加到虚拟 WorkSheet中,当在主工作表上更改filter时,当SUBTOTAL公式更新时触发此事件。

检查小计function。 input=小计(然后点击fx了解它是如何工作的。