个人宏工作簿是一个文件,可以在应用程序开启时运行其中的VBA代码,就像是运行功能区选项卡中的命令一样。创建个人宏工作簿很简单,如下所示。
步骤1:打开一个Excel工作簿,单击功能区“开发工具”选项卡中的“录制宏”命令,在弹出的“录制宏”对话框中,选取“保存在”下拉列表框中的“个人宏工作簿”,如下图1所示。单击“确定”。
图1
步骤2:在工作表中随便选取一个单元格,然后单击“开发工具”选项卡中的“停止录制”。
此时,Excel将自动创建个人宏工作簿文件。按Alt F11键,打开VBE编辑器,可以到工程资源管理器窗口中有一个名为“Personal.xlsb”的VBA工程。
图2
步骤3:双击Personal.xlsb中的模块,在其中编写我们想要实现功能的VBA代码。
步骤4:保存文件。
通常,Excel会自动将个人宏工作簿文件保存在默认位置:
C:Users[insert your username]AppDataRoamingMicrosoftExcelXLSTART
如下图3所示。
图3
下面,我们将《Excel实战技巧77:实现在当前工作表和前一个使用的工作表之间自由切换》中创建的快捷键功能放到个人宏工作簿中,以便于在所有打开的工作簿中都能使用这个功能。
首先,在VBE编辑器中,在PEARSONAL.XLSB工程下插入一个类模块并命名为“TabBack_Class”,输入代码:
代码语言:javascript复制Public WithEvents AppEvent As Application
Public SheetReference As String
Public WorkbookReference As String
'在离开当前工作表前保存其信息
Private Sub AppEvent_SheetDeactivate(ByVal Sh As Object)
WorkbookReference = Sh.Parent.Name
SheetReference = Sh.Name
End Sub
'在关闭工作簿前保存当前工作表信息
Private Sub AppEvent_WorkbookDeactivate(ByVal Wb As Workbook)
WorkbookReference = Wb.Name
SheetReference = Wb.ActiveSheet.Name
End Sub
接着,插入一个标准模块并命名为TabBack,输入代码:
代码语言:javascript复制Dim TabTracker As New TabBack_Class
'初始化Tab追踪和快捷键触发
Sub TabBack_Run()
'启动TabTracker类
Set TabTracker.AppEvent = Application
'当用户按下Alt `时调用ToggleBack过程
Application.OnKey "%`","ToggleBack"
End Sub
'返回到前一个工作表
Sub ToggleBack()
With TabTracker
On Error Resume Next
Workbooks(.WorkbookReference).Worksheets(.SheetReference).Activate
On Error GoTo 0
End With
End Sub
最后,双击打开ThisWorkbook模块,输入代码:
代码语言:javascript复制'打开工作簿时运行
Private Sub Workbook_Open()
Call TabBack_Run
End Sub
保存并关闭Excel文件,然后随便打开一个工作簿,发现可以使用快捷键Alt `在当前工作表和前一个工作表之间来回切换了。
注意,因为个人宏工作簿中的功能可以应用到所有工作簿中,所以在编写代码时应使用ActiveWorkbook,而不是ThisWorkbook。