VBA中心跨选择热键

时间:2017-07-10 16:14:47

标签: excel vba excel-vba

我正在尝试为"中心选择"创建一个热键快捷键。功能。 "合并细胞"功能看起来不错,但是在实践中使用它是可怕的,因为它用Macros等创建的问题。所以,当然,选择中心是首选工具。我使用键盘在Excel中导航,因此有一个自定义快捷方式可以使这个选择更容易,更快,因为它经常被使用,这将是非常好的。

我有一些代码,我认为应该可以使用,但出于某种原因,它不是:

在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快捷方式,我的单元格没有任何反应!请帮我找到我错的地方。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您已在标准模块中实施了该宏; Workbook_Open表示处理Workbook对象的Open事件,但标准模块不会这样做(ThisWorkbook类/ Excel对象模块执行此操作,如Gary's (well, his student's anyway) answer)所示。

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

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

请注意,无论工作簿打开时Auto_Open的状态如何,此Application.EnableEvants宏都会运行。