我希望检测特定表上自动筛选器中的任何更改,目的是强制 UDF 对当前可见的表条目执行一些简单的算术以更新其结果。到目前为止,使 UDF 具有易失性还没有产生任何影响,但它也不直接针对表。
这个解决方案(https://stackoverflow.com/a/15906275/4604845 https://stackoverflow.com/a/15906275/4604845)对我不起作用,可能是因为我只有手动计算。
我有点太肮脏的解决方法是Workbook_SelectionChange
,虽然 UDF 不会以这种方式消除资源消耗,但我宁愿避免它,以防数据变得更大。另外,我有一些用户在使用计算机方面完全是新手,我很难相信我能让他们所有人明白他们需要在更新自动过滤器后单击其他内容才能获得正确的结果。
有任何想法吗?我努力了Workbook_Change
and Workbook_Calculate
但它们都没有被自动过滤器更改触发(或者我不知道如何触发它们)。
即使工作表上没有其他公式,如果您包含小计()公式在引用表格的工作表上的某处,小计()每次更改自动过滤器时都会重新计算。
您可以使用它来触发计算()事件宏。
EDIT#1:
假设我们在列上设置了自动过滤器A一张名为data。床单data还包含许多其他公式。如果我们使用计算()事件在data工作表,我们随时都会发生火灾any重新计算这些公式。
我们创建一个新的工作表,名为trigger。这个新工作表完全是空的,除了一个包含以下内容的单元格:
=SUBTOTAL(3,data!A1:A20)
它是在trigger我们放置的工作表计算()事件宏。
现在如果我们使用data工作表中,我们可以进行任意更改并执行各种重新计算,并且不会触发任何操作,但是如果我们更改自动过滤器,则事件宏trigger将看到变化和火!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)