在Excel加载项中包含“ ThisWorkbook”代码

汤玛士

我正在创建VBA Excel-Add。我需要使用“ Workbook_SheetChange”子项。是否可以将此代码作为外接程序的一部分包含在内,以便所有使用包含用户定义功能的外接程序的工作簿都可以访问在工作表更改时执行的代码?

该文件将另存为.xla加载项。但是,“ Workbook_SheetChange”将无法在模块中使用,并且必须位于文件的ThisWorkbook代码部分中。因此,当前没有使用我的外接程序进行继承。

迪克·库斯莱卡(Dick Kusleika)

您的加载项中需要一个自定义类模块,该模块具有一个声明为WithEvents的Application变量。我通常将我的类模块称为CAppEvents。

Private WithEvents mxlApp As Application

Public Property Set App(xlApp As Application)

    Set mxlApp = xlApp

End Property

现在,在代码窗格(Ctrl + F2)的左上角下拉菜单中,您有了mxlApp。选择该选项卡,然后在右上角选项卡上选择TabChange。您将得到一个这样的存根。

Private Sub mxlApp_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

如果任何打开的工作簿中任何工作表上的任何单元格发生更改,则将触发此事件。您将需要添加一些代码以确保它是您关心的工作表。您没有在参数中获得工作簿名称,但是可以使用它Sh.Parent来访问工作簿。

您唯一需要做的另一件事就是创建类。在标准模块中

Public gclsAppEvents As CAppEvents

Sub Auto_Open()

    Set gclsAppEvents = New CAppEvents
    Set gclsAppEvents.App = Application

End Sub

将变量设为public可以在加载外接程序时将其保留在范围内。首次打开工作簿时,名为Auto_Open的标准模块中的任何子程序都将运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

到达ThisWorkbook代码区域

来自分类Dev

优化代码以在Outlook加载项中搜索电子邮件

来自分类Dev

从Excel VBA编辑器中删除多个“ ThisWorkbook”模块

来自分类Dev

Excel VBA - 如何在 ThisWorkbook.ContentTypeProperties 中定义道具?

来自分类Dev

在加载时执行类中包含的模块中的代码(而不在初始化时执行)

来自分类Dev

在C#中打开Excel加载项

来自分类Dev

在宏中调用Excel加载项功能

来自分类Dev

代码中的%timeit等效项

来自分类Dev

在UserControl for Excel加载项(VB)中动态加载XAML

来自分类Dev

优化VBA / Excel宏代码(在大表中查找重复项)

来自分类Dev

Excel中的Normal.dotm等效项,用于引用相同的单个VBA代码

来自分类Dev

如何在excel中的每一列(包含信息)中运行代码?

来自分类Dev

如何部署Excel XLL加载项并在Excel中自动注册该加载项

来自分类Dev

在VBS中包含.bat代码

来自分类Dev

在VBS中包含.bat代码

来自分类Dev

在Firefox无需重启的加载项中,如何在打开新窗口(监听窗口打开)时运行代码?

来自分类Dev

如何在没有任何加载项的情况下在Outlook 2010中编辑电子邮件的HTML源代码?

来自分类Dev

获取包含代码的Excel工作表的名称

来自分类Dev

如何使用Excel VBA删除第一列中包含特定代码的行?

来自分类Dev

如何从VBA代码启动Access加载项(不是COM加载项)?

来自分类Dev

是否有一个代码预处理工具可以将多个用户定义的包含项(不包含任何系统)合并到一个文件中?

来自分类Dev

如何通过依赖项包含Javadoc和源代码

来自分类Dev

为Visual Studio创建代码生成器加载项

来自分类Dev

在Excel 365中添加加载项后未显示``加载项''选项卡

来自分类Dev

如果Excel或Word已打开,则ThisWorkbook Workbook_Open无法显示用户窗体

来自分类Dev

Windows(ThisWorkbook.Name).Visible = True 导致 Excel 自动恢复文件出错

来自分类Dev

对象“_Global”的方法“ThisWorkbook”失败 - 将注释从 Word 导出到 Excel

来自分类Dev

将Excel加载项存储在现有工作簿中

来自分类Dev

无法在Excel Web加载项中创建表

Related 相关文章

  1. 1

    到达ThisWorkbook代码区域

  2. 2

    优化代码以在Outlook加载项中搜索电子邮件

  3. 3

    从Excel VBA编辑器中删除多个“ ThisWorkbook”模块

  4. 4

    Excel VBA - 如何在 ThisWorkbook.ContentTypeProperties 中定义道具?

  5. 5

    在加载时执行类中包含的模块中的代码(而不在初始化时执行)

  6. 6

    在C#中打开Excel加载项

  7. 7

    在宏中调用Excel加载项功能

  8. 8

    代码中的%timeit等效项

  9. 9

    在UserControl for Excel加载项(VB)中动态加载XAML

  10. 10

    优化VBA / Excel宏代码(在大表中查找重复项)

  11. 11

    Excel中的Normal.dotm等效项,用于引用相同的单个VBA代码

  12. 12

    如何在excel中的每一列(包含信息)中运行代码?

  13. 13

    如何部署Excel XLL加载项并在Excel中自动注册该加载项

  14. 14

    在VBS中包含.bat代码

  15. 15

    在VBS中包含.bat代码

  16. 16

    在Firefox无需重启的加载项中,如何在打开新窗口(监听窗口打开)时运行代码?

  17. 17

    如何在没有任何加载项的情况下在Outlook 2010中编辑电子邮件的HTML源代码?

  18. 18

    获取包含代码的Excel工作表的名称

  19. 19

    如何使用Excel VBA删除第一列中包含特定代码的行?

  20. 20

    如何从VBA代码启动Access加载项(不是COM加载项)?

  21. 21

    是否有一个代码预处理工具可以将多个用户定义的包含项(不包含任何系统)合并到一个文件中?

  22. 22

    如何通过依赖项包含Javadoc和源代码

  23. 23

    为Visual Studio创建代码生成器加载项

  24. 24

    在Excel 365中添加加载项后未显示``加载项''选项卡

  25. 25

    如果Excel或Word已打开,则ThisWorkbook Workbook_Open无法显示用户窗体

  26. 26

    Windows(ThisWorkbook.Name).Visible = True 导致 Excel 自动恢复文件出错

  27. 27

    对象“_Global”的方法“ThisWorkbook”失败 - 将注释从 Word 导出到 Excel

  28. 28

    将Excel加载项存储在现有工作簿中

  29. 29

    无法在Excel Web加载项中创建表

热门标签

归档