热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ExcelVBA筛选器更改事件处理程序

如何解决《ExcelVBA筛选器更改事件处理程序》经验,为你挑选了1个好方法。

有没有办法弄清楚用户何时更改了纸张过滤器?

换句话说,是否有某种change_filter event处理程序?



1> brettdj..:

是.

从这篇文章我发布在另一个论坛上

1. 在A1中使用单个公式添加一个虚拟工作SUBTOTAL,指向主工作表上要过滤的范围.
2.将Worksheet_Calculate()事件添加到虚拟工作表中,SUBTOTAL当更改过滤器时公式更新时,将触发此事件.

'Dummy sheet code
Private Sub Worksheet_Calculate()
'Dummy Sheet has recalculated
    MsgBox "Your list has been filtered"
End Sub

迎合手工计算

请注意,上述方法要求将工作簿计算设置为自动(VBA中的xlCalculationAutomatic)或自动除表(xlCalculationSemiAutomatic).如果计算设置为手动(xlCalculationManual),则需要进一步编码以设置WorkBook,以便只将"虚拟"工作表设置为自动计算,所有其他工作表都关闭计算.

有一个很少使用的WorkSheet属性,EnableCalculation可以通过Visual Basic编辑器设置为True或False.默认设置显然为True,如果设置为False,则工作表将无法计算.

EnableCalculation属性不适用于常规Excel菜单或功能区选项 - 因此,对于希望通过故意保持重新计算密钥表来保护Excel模型的人来说,这可能是一个有用的技巧.

    添加Workbook_Open事件以将EnableCalculation property"Dummy"以外的所有工作表设置为False.

    计算模式下运行工作簿.


推荐阅读
author-avatar
jingjing20111201
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有