0
A
回答
2
没有直接的事件触发捕捉到隐藏或取消隐藏列。有一些笨拙的解决方法,在单元格中使用公式,但这些公式在使用时感觉像是一团糟,而不是非常灵活。
但是,如果您使用Excel 2007或更新版本,则有一种间接方式可以捕获此事件。这很整齐,非常灵活。
- 修改功能区XML(如果它存在):你需要能够修改功能区的
customUI14.xml
(对于Excel 2010)或customUI.xml
(用于Excel 2007)。 - 创建自定义功能区UI XML文件(如果不存在):您可以使用Ron De Bruin出色的自定义用户界面编辑器http://www.rondebruin.nl/win/s2/win001.htm(在许多Microsoft官方示例中也有此功能)。
- 捕获事件的XML更改:在自定义用户界面编辑器中打开Excel文件并添加XML代码,如下所示。这将启用列隐藏或取消隐藏事件来触发代码中的宏。
- VBA代码来执行您的操作:添加下面列出的代码来捕获事件后采取行动。
参考:此优良溶液通过安迪教皇here(MSDN链路)提供。
自定义XML代码:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" >
<commands >
<command
idMso="ColumnsHide"
onAction="Column_Hide_Macro"/>
<command
idMso="ColumnsUnhide"
onAction="Column_UnHide_Macro"/>
</commands >
</customUI>
自定义用户界面编辑器截图:
VBA代码:
Sub Column_Hide_Macro(control As IRibbonControl, ByRef CancelDefault)
MsgBox ("You have hidden a column")
' You may put your code here
' to check if your monitored row is hidden
CancelDefault = False ' This enables the default action to continue
End Sub
Sub Column_UnHide_Macro(control As IRibbonControl, ByRef CancelDefault)
MsgBox ("You have unhidden a column")
' You may put your code here
' to check if your monitored row is unhidden
CancelDefault = False ' This enables the default action to continue
End Sub
相关问题
- 1. 隐藏行excel vba在未触发时不起作用
- 2. Excel事件更改:隐藏或取消隐藏行
- 3. 如何在取消隐藏行或列时触发
- 4. ,同时隐藏滚动条和隐藏溢出触发事件
- 5. Excel隐藏行与VBA
- 6. 如何在DialogBox隐藏在GWT中时触发事件?
- 7. Excel Worksheet_Change事件触发时删除行
- 8. 隐藏行中的数据 - Excel VBA
- 9. SelectedIndexChanged事件不会在代码隐藏中创建下拉列表时触发
- 10. Excel VBA工作表事件在隐藏/取消隐藏之间切换
- 11. Excel VBA:隐藏所有列,然后取消隐藏某些列
- 12. 用VBA触发HTML事件
- 13. 显示/隐藏超时事件 - 无法触发的时间
- 14. 使用VBA在Excel表格中有条件地隐藏行
- 15. 组合框更改事件每次都在Excel中触发VBA
- 16. 隐藏行在Excel 2013
- 17. 在excel中隐藏列
- 18. Excel VBA隐藏第n个可见列
- 19. 在excel中隐藏图表VBA
- 20. 如何在excel VBA中隐藏图片?
- 21. Excel的VBA优化隐藏的行
- 22. Excel VBA,for循环忽略隐藏行
- 23. 自动隐藏行 - Excel的VBA
- 24. 带隐藏行的excel组
- 25. 如何在UIBarButtonItem的动作中触发隐藏的UIButton事件
- 26. 一旦checkchanged事件触发,Modalpopupextender会隐藏一段时间?
- 27. Excel VBA代码切换隐藏和取消隐藏行
- 28. Excel VBA - 在工作表加载时隐藏行
- 29. html onClick事件不会用vba触发
- 30. Sharepoint DateTimeControl未触发事件消隐时
很好的问题 - 没有直接的办法这样做(没有C olumn_Hide类型事件afaik),但有一个解决方法,我将在测试后发布。你使用Excel 2007或更新? – hnk
嗨,下面的答案有用吗? – hnk