我想执行以下操作:我希望能够在personal.xlsb中修改BeforeDoubleClick事件。 这是我想到的一个例子:我想,当我双击一个单元格时,它的backgroundcolour设置为绿色。通常我必须在Workbook Workbook_BeforeDoubleClick事件中执行此操作,但是我希望能够在任何工作簿和我的personal.xlsb中执行此操作,以便我可以为BeforeRightClick事件分配不同的方法。理想情况下,我会有一个带有几个按钮的用户窗体,每个按钮为BeforeRightClick事件分配不同的方法。
这可能吗?我无法在网上找到解决方案。
祝你好运!
答案 0 :(得分:0)
有可能 - 要做到这一点,您需要捕获Application
个事件。
此处提供了示例代码的完整说明: http://www.cpearson.com/excel/AppEvent.aspx
答案 1 :(得分:0)
可以在个人文件的ThisWorkbook
模块中使用几行代码:
Option Explicit
Public WithEvents App As Application
Private Sub Workbook_Open()
Set App = Application
End Sub
Private Sub App_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Debug.Print "RightClick on Sheet: " & Sh.Name & " at " & Target.Address
End Sub
(请注意,添加代码后,您必须保存,完全关闭Excel并重新启动它以便触发Workbook_Open
事件。)
但是,有两件事需要考虑:
Cancel = True
时,会窃取所有上下文菜单 - 我不建议这样做。但是,如果设置Cancel = False
,则会有两个并行操作,首先是您的操作,并且只有在该操作完成后(显示表单可能很长时间),才会弹出上下文菜单 - 非常混乱。app
变量就会重置,从那时起,事件将不会再触发你重启Excel。我的建议:将键盘快捷键分配给个人工作簿中的宏。而不是右键单击,要触发的事件将是例如Ctrl+Shift+F
到 F ormat您的工作表。