【发布时间】:2013-03-26 05:31:19
【问题描述】:
我有一个文件,其中有一个模板表,当它被激活时需要运行一些代码。正在复制此工作表以创建运行此代码不需要的工作表。目前,我有代码在运行时检查工作表的代号,这样它就不会在额外的工作表上执行任何操作,但是当您在工作表之间切换时它仍然会减慢使用速度。
有没有什么方法可以让产生重复的宏也清除它们的 VBA 代码内容?
(编辑)请注意,我需要清除的代码不在模块中。经过一番研究,我似乎找到了一种删除模块的方法(通过访问VBProject.VBComponents),但我不确定如何访问工作表的 VBA 代码。
【问题讨论】:
-
如果您只是想摆脱整个 vba 代码,您只需将其保存为“.xlsx”文件即可。
-
@KazJaw:这不是一个选项,因为工作簿还有许多其他必要的宏。
-
@user2063626 我在问如何删除工作表的 VBA code。我重新表述了这个问题以避免混淆。
-
所以我猜你想删除触发
sheet_activate事件的代码?可以吗?? -
经过一番挖掘,我设法找到了答案。看起来
VBComponents对象的代码可以通过.CodeModule属性访问。这是我用来测试这个想法的代码:ThisWorkbook.VBProject.VBComponents.Item("TestSheet").CodeModule.DeleteLines 1, _ ThisWorkbook.VBProject.VBComponents.Item("TestSheet").CodeModule.CountOfLines。在这种情况下,TestSheet是我正在删除的代码的工作表的CodeName。宏工作,成功删除代码。