你可以删除一个macros,当一个文件被复制,但保留在原来的?

我有一个名为Expenses Sheet.xls的工作簿,位于R:\LGS\FINANCES\ 。 许多人参考它,并经常保存一份副本,以便他们可以操纵数据。 原始文件中有一个自动保存的macros,保存到一个固定的位置。 是否有可能删除新(保存为)副本中的所有macros,因此新副本没有包含在原始expenses Sheet.xls的macros? 这将停止所有和杂物的副本被保存在我的备份文件,正如目前正在发生的。

首先,当文件被复制时,你的Excel文件中没有任何东西在执行。 最多时,您可以使用“文件 – >另存为…”菜单项,从Excel内部将文档保存到其他位置时禁用或删除macros的事件,但如果它们拖动并使用Windows资源pipe理器删除文件, 在这方面你是不幸的。

但是,您是否想过简单地使所有这些macros检查这个实际上是应该保存在那个地方的文档?

像这样(注意,在这一点上我完全不熟悉Excelmacros语法,所以这可能是错误的,但你应该明白):

 IF NOT DocumentLocation = "R:\LGS\FINANCES\ThisSpreadsheet.XLS" Then Exit Sub END 

这样,macros仍然存在,并且仍然会执行,但是对于其他人来说,它们基本上什么也不做。

这对你的情况是否可以接受?

拉塞·V·卡尔森的build议是确切的,确切的语法可能是

 If Not Left(ThisWorkbook.Path,16) = "R:\LGS\FINANCES\" Then Exit Sub End If