将宏更新为在所有工作表中都相同(或使代码更具全局性?)

哎呀

我有一本工作簿,里面有几十张工作表,而且还在增加。我也可能很快就会得到这本工作簿的副本。

每个工作表都基于相同的工作表模板,其中包含一个宏,Worksheet_Change用于自动计算的事件。当我改进工作簿并添加功能并添加工作表时,将更新的宏复制粘贴到所有工作表所需的时间越来越长。

我想知道是否有办法:

  1. 制作另一个宏,将宏的更新版本从模板复制到所有其他工作表,在此过程中覆盖旧版本

和/或

  1. 将代码从 worksheet_change 移动到一个更全局的地方,我只需要为每个工作簿更新它的一个版本(这很好,比在即将成为 3 个工作簿中手动更新 20 多个工作表要好得多......)

解决方案#2 会更好,因为我认为更优雅?但我不知道是否可能。除非我很乐意为节省时间而选择#1!

先感谢您。

Pᴇʜ

如果我们谈论的是一个包含多个工作表的工作簿,那么一种简单的方法(解决更新问题)是:

  1. 添加一个模块并编写一个包含原始更改事件代码的过程:

    Option Explicit
    
    Public Sub MyGlobalWorksheet_Change(ByVal Target As Range)
        ' here the code from your orignal Worksheet_Change.
        ' make sure you reference worksheets correctly
        ' the worksheet can eg be addressed like
        ' set ws = Target.Parent
    End Sub
    
  2. 因此,在您的工作表中,您只需要添加一个通用调用,例如

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        MyGlobalWorksheet_Change Target
    End Sub
    

    调用全局过程。因此,Worksheet_Change事件永远不需要更改,但是您只需要添加一次即可。

    每当您需要更改代码中的某些内容时,您只需要更改一个过程,MyGlobalWorksheet_Change它会立即影响您想要的所有工作表(但只会影响您将调用添加到全局事件的工作表)。

请记住,一遍又一遍地复制相同的代码总是一个坏主意,因为它很难维护。而是始终使用您一次又一次调用的一个过程。


另一种方法是Workbook_SheetChangeThisWorkbook范围使用事件但这会影响工作簿中的任何工作表。之前的解决方案只会影响您通过添加调用选择的工作簿。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在所有工作表上运行我的宏

来自分类Dev

在所有工作表中使用宏

来自分类Dev

如何使我的代码在所有工作表中都能正常工作,而不仅限于当前活动工作表中?

来自分类Dev

VBA:在所有工作表中执行相同的代码

来自分类Dev

如何使提示字体系列在所有设备中都相同,并且可绘制文件夹xml代码在平板电脑中显示为黑色?

来自分类Dev

如何在所有活动中都投放相同的广告?

来自分类Dev

Typescript接口作用域如何工作?如何使接口具有全局性?

来自分类Dev

QDataWidgetMapper并非在所有Windows中都更新

来自分类Dev

打开xlsm文件时,在所有工作表中运行Automaticaly vba宏

来自分类Dev

Excel Power Query-将Excel文件与多个工作表(其中可能在所有工作簿中都不存在工作表)的最佳方式是什么

来自分类Dev

如何使服务在Angular库中具有全局性?

来自分类Dev

Kotlin扩展功能-如何使其具有全局性?

来自分类Dev

失去功能的全局性

来自分类Dev

需要帮助在所有工作表上执行相同的公式

来自分类Dev

VBA LOOP在所有工作表上都创建相同的标题吗?

来自分类Dev

如何在所有工作表的特定单元格中写入相同的信息?

来自分类Dev

如何在所有工作表中保持页眉(不是静态页眉)相同?

来自分类Dev

由于 Excel 分配的表名不同,无法在所有工作表中使用过滤器宏

来自分类Java

为什么hashCode()在所有连续执行中都为对象返回相同的值?

来自分类Dev

使laravel混合代理地址在所有项目中都相同

来自分类Dev

统一随机数在所有运行中都相同

来自分类Dev

CSS模板在所有浏览器中都不相同(重叠div)

来自分类Dev

為什麼 Java 信任庫在所有已安裝的 JDK 版本中都相同?

来自分类Dev

新手:为Google工作表编写脚本,该脚本将在所有工作表上运行

来自分类Dev

如何确保AuthName在所有浏览器中都能正常工作?

来自分类Dev

如何使“数字”类型的输入上的RangeValidator在所有本地化中都能正常工作?

来自分类Dev

使Glide在所有课程中都作为单身人士工作

来自分类Dev

将所有工作表中的前两列复制到主工作表的宏正在跳过工作表

来自分类Dev

宏以调用将针对工作簿中所有打开的工作表运行的函数

Related 相关文章

  1. 1

    在所有工作表上运行我的宏

  2. 2

    在所有工作表中使用宏

  3. 3

    如何使我的代码在所有工作表中都能正常工作,而不仅限于当前活动工作表中?

  4. 4

    VBA:在所有工作表中执行相同的代码

  5. 5

    如何使提示字体系列在所有设备中都相同,并且可绘制文件夹xml代码在平板电脑中显示为黑色?

  6. 6

    如何在所有活动中都投放相同的广告?

  7. 7

    Typescript接口作用域如何工作?如何使接口具有全局性?

  8. 8

    QDataWidgetMapper并非在所有Windows中都更新

  9. 9

    打开xlsm文件时,在所有工作表中运行Automaticaly vba宏

  10. 10

    Excel Power Query-将Excel文件与多个工作表(其中可能在所有工作簿中都不存在工作表)的最佳方式是什么

  11. 11

    如何使服务在Angular库中具有全局性?

  12. 12

    Kotlin扩展功能-如何使其具有全局性?

  13. 13

    失去功能的全局性

  14. 14

    需要帮助在所有工作表上执行相同的公式

  15. 15

    VBA LOOP在所有工作表上都创建相同的标题吗?

  16. 16

    如何在所有工作表的特定单元格中写入相同的信息?

  17. 17

    如何在所有工作表中保持页眉(不是静态页眉)相同?

  18. 18

    由于 Excel 分配的表名不同,无法在所有工作表中使用过滤器宏

  19. 19

    为什么hashCode()在所有连续执行中都为对象返回相同的值?

  20. 20

    使laravel混合代理地址在所有项目中都相同

  21. 21

    统一随机数在所有运行中都相同

  22. 22

    CSS模板在所有浏览器中都不相同(重叠div)

  23. 23

    為什麼 Java 信任庫在所有已安裝的 JDK 版本中都相同?

  24. 24

    新手:为Google工作表编写脚本,该脚本将在所有工作表上运行

  25. 25

    如何确保AuthName在所有浏览器中都能正常工作?

  26. 26

    如何使“数字”类型的输入上的RangeValidator在所有本地化中都能正常工作?

  27. 27

    使Glide在所有课程中都作为单身人士工作

  28. 28

    将所有工作表中的前两列复制到主工作表的宏正在跳过工作表

  29. 29

    宏以调用将针对工作簿中所有打开的工作表运行的函数

热门标签

归档