在 VBA 中实现切换快捷方式

Implement toggle short-cuts in VBA

让我先感谢您的帮助并原谅我在第一个 post 中的潜在缺点。

描述 我想使用 excel 中的键盘快捷键来快速格式化电子表格。例如,因为我经常使用相同的 4 种字体颜色,所以我想创建一个切换快捷方式(例如,Shift + Ctrl+ K = 蓝色字体,再次按 K,绿色字体,再次按 K 红色字体,再次按它,​​return 到原始字体颜色)。

当前方法 按下 Shift + Ctrl + K

后,我设法分配了相关的宏
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "+^b", "ShortcutsFormatFontColor" End Sub

问题 我很难找到一个解决方案,如果我再次按 Shift + Ctrl + K,我如何调用另一个宏/更改宏 --> 如果我想使用相同的快捷方式切换各种设计案例。

谢谢!

一种方法是......在Workbook_Open中分配给宏键。

Option Explicit

Private Sub Workbook_Open()
  Application.OnKey "+^k", "ShortcutsFormatFontColor"
End Sub

创建代码模块并添加循环显示颜色的 ShortcutsFormatFontColor 例程。在此特定示例中,代码更改了所有选定单元格的颜色,但使用所选内容左上角的单元格来确定参考颜色:

Option Explicit

Private Sub ShortcutsFormatFontColor()

    Dim vSelection As Range
    Dim vNewColor As Long

    Set vSelection = Application.Selection

    If vSelection.Cells.Count > 0 Then
        Select Case vSelection.Cells(1, 1).Font.Color
        Case rgbBlue: vNewColor = rgbGreen
        Case rgbGreen: vNewColor = rgbRed
        Case rgbRed: vNewColor = rgbBlue
        Case Else: vNewColor = rgbGreen
        End Select
        vSelection.Font.Color = vNewColor
    End If

End Sub