我在Expenses Sheet.xls
中有一个名为R:\LGS\FINANCES\
的工作簿。很多人都会参考它,并经常保存副本,以便他们可以操纵数据。原始文件中有一个自动保存宏,保存到固定位置。是否可以删除新(另存为)副本中的所有宏,因此新副本中没有原始expenses Sheet.xls
中包含的宏?这将阻止所有和杂物的副本保存在我当前正在发生的备份文件中。
答案 0 :(得分:1)
首先,Excel文件中没有任何内容在复制文件时执行。最多,您可以使用“文件 - >另存为...”,当人们在其他地方保存文档时,您可以使用“文件 - >另存为”来挂钩禁用或删除宏的事件。 “菜单项,但是如果他们使用Windows资源管理器拖放文件,那么就此而言 。
但是,您是否考虑过简单地让所有这些宏检查这是否实际上是应该保存在那个地方的文档?
就像这样(注意,我现在完全不熟悉Excel宏语法,所以这可能是错的,但你应该明白这一点):
IF NOT DocumentLocation = "R:\LGS\FINANCES\ThisSpreadsheet.XLS" Then
Exit Sub
END
这样,宏仍然存在,并且仍将执行,但它们基本上不会为其他人做任何事情。
这对您的案件来说是否可以接受?
答案 1 :(得分:0)
Lasse V. Karlsen的建议很明确,确切的语法可能是
If Not Left(ThisWorkbook.Path,16) = "R:\LGS\FINANCES\" Then
Exit Sub
End If