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