如何使用宏将“ Ctrl + F12”设置为“跳转到下一个活动工作表”的excel快捷方式

时间:2018-10-12 20:32:13

标签: excel vba excel-vba

很抱歉,但我对Surface Laptop上的Microsoft键盘如何将PageDown置于F12键上感到非常恼火。每当我想移至excel中的下一张工作表时,都按“ Ctrl + PageDown”,但是excel会将其解密为“ Ctrl + F12”。

显然,只有当“ Fn锁定”处于打开状态时,PageDown才起作用,但是当PageDown起作用时,所有其他功能键都不起作用。当我使用excel时,这对我来说非常麻烦。

因此,我想知道是否存在使用excel中的宏将“跳转到下一个工作表”分配给“ Ctrl + F12”的方法(以及“跳转到上一个工作表”也分配给“ Ctrl + F11”的方法) ),因为我还是没有真正使用Ctrl + F12或Ctrl + F11。

非常感谢您!

最好

1 个答案:

答案 0 :(得分:0)

据我所知,您无法在excel中更改快捷键,这有时很麻烦。您也不能将快捷键添加到“自定义快速访问工具栏”。

一种方法是直接将快捷键分配给宏,方法是转到->开发人员->宏->宏选项,然后分配Ctrl +字母。

更方便的解决方法是通过Application.OnKey应用代码(感谢提醒我@Frank He)。

1 -在工作表代码模块中,添加: enter image description here

Private Sub Workbook_Open()
    Application.OnKey "{F11}", "ToPreviousSheet"
    Application.OnKey "{F12}", "ToNextSheet"
End Sub

2 -在模块(上图中的模块1)中,将代码添加到@ChrisB提供的"VBA Macros to Activate Previous or Next Sheet"中:

Sub ToPreviousSheet()
    If ActiveSheet.Index = 1 Then
        ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count).Activate
    Else
        ActiveWorkbook.Worksheets(ActiveSheet.Index - 1).Activate
    End If
End Sub

Sub ToNextSheet()
    If ActiveSheet.Index = ActiveWorkbook.Worksheets.Count Then
        ActiveWorkbook.Worksheets(1).Activate
    Else
        ActiveWorkbook.Worksheets(ActiveSheet.Index + 1).Activate
    End If
End Sub

3 -关闭工作簿并重新打开。现在,可以将F11和F12用作新的热键。