保存工作簿副本时撤防某些macros

我已经build立了一个macros来创build和保存原始工作簿的副本。 不过,我不想让原来的某些macros在副本上运行。 有什么方法可以让我获得macros,创build并保存原始副本,“解除”某些macros?

在此先感谢您的帮助!

这取决于工作簿devise。 首先,是button的macros? 如果是,则可以将它们从button上移除,或者可以删除button。 如果不是这样,那么就没有直接的方式来“解除”macros。 然而,想到的一个技巧就是根据工作簿的名称(假设保存的工作簿使用不同的名称)使要禁用的macros成为可能。 然后,可以将macros设置为仅使用if语句在原始工作簿名称下运行。

你可以使用VBIDE对象库

免责声明:仔细阅读“简介”及其CAUTION条款

然后将您的项目添加到Microsoft Visual Basic For Applications Extensibility 5.3所需的引用 并编码如下:

Sub DeleteModule(wb As Workbook, moduleName As String) With wb.VBProject .VBComponents.Remove .VBComponents(moduleName) End With End Sub 

被你的主要部分调用如下

 Sub main() ' ... code to get to the original workbook saved copy ThisWorkbook.SaveAs "C:\Users\...\FileTest.xlsm" DeleteModule ActiveWorkbook, "ModuleNameToDelete" '<--| this will erase the wanted module from the active workbook (ie the just "savedas" workbook) '... more code End Sub