如何实现Excel按Ctrl+@调出工作表标签导航列表并复用至其他工作簿?
实现Ctrl+@调出Excel工作表标签选择列表的方法
这个功能是通过VBA宏+自定义快捷键实现的,原生Excel并无此默认快捷键,具体步骤如下:
1. 编写VBA宏代码
- 打开目标Excel工作簿,按下
Alt+F11打开VBA编辑器。 - 右键点击左侧导航栏的当前工作簿名称,选择「插入」→「模块」。
- 在代码窗口中粘贴以下代码:
Sub ShowSheetList() Dim sheetNames() As String Dim i As Integer Dim selectedSheet As Variant ' 收集所有工作表名称 ReDim sheetNames(1 To ThisWorkbook.Sheets.Count) For i = 1 To ThisWorkbook.Sheets.Count sheetNames(i) = ThisWorkbook.Sheets(i).Name Next i ' 弹出工作表选择对话框 selectedSheet = Application.InputBox( _ Prompt:="选择要切换的工作表", _ Title:="工作表列表", _ Type:=64) ' Type:=64支持列表选择 ' 激活选中的工作表 If Not IsError(selectedSheet) Then ThisWorkbook.Sheets(selectedSheet).Activate End If End Sub
2. 设置Ctrl+@快捷键
- 按下
Alt+F8调出宏对话框,选中ShowSheetList宏。 - 点击「选项」按钮,在「快捷键」输入框中按下
@(默认组合为Ctrl+@),点击「确定」保存。
3. 应用到所有Excel工作簿(可选)
如果想让所有打开的Excel文件都能用这个功能,把宏保存到个人宏工作簿:
- 若没有个人宏工作簿,先录制一个空白宏(「开发工具」→「录制宏」,随便命名后停止),Excel会自动生成
Personal.xlsb。 - 在VBA编辑器中,把刚才的模块复制到
Personal.xlsb的模块目录下。 - 重启Excel后,所有工作簿都能通过Ctrl+@调出工作表选择列表。
注意事项
- 确保Excel启用宏功能,文件需保存为
.xlsm或.xlsb格式(个人宏工作簿无需额外设置)。 - 部分键盘布局下Ctrl+@可能冲突,可在宏选项中更换为其他组合,比如
Ctrl+Shift+@。
内容的提问来源于stack exchange,提问作者chris andrews
相关产品推荐
相关产品推荐

