我已经创建了一些excel宏来帮助进行数字和文本格式化(添加逗号分隔符,例如1,000,000但没有小数;更改字体颜色等)。这些已保存在个人工作簿的模块中,以便每当我使用Excel时它们都可用。
格式化代码工作正常(据我所知),如下所示:
Sub Number_commas()
Selection.NumberFormat = "#,##0"
End Sub
和
Sub Font_colour()
For Each cell In Selection
If Selection.Font.Color = RGB(0, 0, 0) Then
Selection.Font.Color = RGB(0, 0, 255)
ElseIf Selection.Font.Color = RGB(0, 0, 255) Then
Selection.Font.Color = RGB(0, 128, 0)
Else
Selection.Font.Color = RGB(0, 0, 0)
End If
Next
End Sub
我还尝试使用OnKey为它们分配快捷方式。这是因为我希望能够使用宏选项窗口(从Alt + F8调用)不允许的字符。如下所示:
Sub Hotkey_Number_commas()
Application.OnKey "+^1", Procedure:="Number_commas"
End Sub
和
Sub Hotkey_Font_colour()
Application.OnKey "+^:", Procedure:="Font_colour"
End Sub
我面临的问题是每次打开Excel时,除非我手动进入VBE并运行每个代码,否则这些快捷方式不起作用。然后,快捷方式可以正常工作,直到Excel关闭并重新启动并且问题再次出现。我在帮助网站上看过截图显示作者可以选择从宏窗口分配 CTRL + SHIFT 快捷方式,但奇怪的是我没有这个选项,只有 CTRL 快捷方式。
我的机智结束了,我不确定我的单行代码或我的Excel /计算机设置是否有问题。任何指针都将非常感谢!
答案 0 :(得分:1)
请参阅http://support.microsoft.com/KB/265113,其中介绍了在打开工作簿时如何运行宏。
尝试:
Private Sub Workbook_Open()
Application.OnKey "+^1", Procedure:="Number_commas"
Application.OnKey "+^:", Procedure:="Font_colour"
End Sub