VBA中心全选热键

我正在尝试为“中心select”function创build快捷键。 “合并单元格”function看起来很不错,但实际上很难使用,因为它使用macros等创build的问题。 所以,自然而然地,select中心就是一个可行的工具。 我使用键盘在Excel中导航,所以有一个自定义快捷键可以使这个select更容易,更快捷,因为它经常被使用。

我有这样的代码,我相信应该工作,但由于某种原因,它不是:

在PERSONAL.XLSB – 模块1

Private Sub WorkBook_Open() Application.OnKey "^q", "center_across_selection" End Sub 

在PERSONAL.XLSB – 模块3

 Sub center_across_selection() With Selection 'converts centered text to regular format If .HorizontalAlignment = xlCenterAcrossSelection Then .HorizontalAlignment = xlGeneral 'converts regular text to centered across selection Else Selection.HorizontalAlignment = xlCenterAcrossSelection End If End With End Sub 

然后,一旦我保存,退出工作簿(以及所有其他工作簿),重新打开工作簿,并尝试使用Ctrl+Q快捷方式,没有任何事情发生在我的单元格! 请帮我find我要去哪里错了。

Private Sub WorkBook_Open()MODULE 1移到工作簿代码区域。

您已经在标准模块中实现了macros; Workbook_Open意味着处理Workbook对象的Open事件,但是一个标准模块不会这样做( ThisWorkbook类/Excel对象模块的确如Gary(好吧,他的学生的答案 )所示)。

因此,要么将macros移到ThisWorkbook的代码隐藏,要么将macros重命名为兼容Excel4的Auto_Open

 Private Sub Auto_Open() Application.OnKey "^q", "center_across_selection" End Sub 

请注意,在打开工作簿时,无论Application.EnableEvants的状态如何, Auto_Openmacros都将运行。