前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel实战技巧78: 创建个人宏工作簿

Excel实战技巧78: 创建个人宏工作簿

作者头像
fanjy
发布2020-05-25 16:33:38
2.7K0
发布2020-05-25 16:33:38
举报
文章被收录于专栏:完美Excel

个人宏工作簿是一个文件,可以在应用程序开启时运行其中的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]\AppData\Roaming\Microsoft\Excel\XLSTART

如下图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。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档