如何保存非活动工作表的副本 - Excel 2003 vba

时间:2010-10-07 17:54:36

标签: excel vba excel-vba

我们有一个允许用户运行报告的软件。此报告的模板是存在于网络驱动器上的Excel工作簿。步骤是:

用户点击“生成报告” 该软件打开模板,填充数据并关闭模板,将其保存在特定目录中。这是“静默地”完成的,也就是说,工作表永远不会被用户看到。

我的目标是在工作表打开时执行VBA模块,这将在单独的目录中保存工作簿的其他副本。这是成功的一行代码似乎不想运行:

ThisWorkbook.SaveAs (fileName)

(其中“fileName”是包含正确目录的字符串。由于某种原因,这不会像我期望的那样保存工作簿的副本。如果我要打开程序制作的副本并运行该代码,它的工作原理很好,但在工作表未处于活动状态时的初始复制期间,SaveAs只是没有做任何事情。此代码位于由BeforeSave事件调用的模块中。

关于为什么没有这样做的任何想法?

1 个答案:

答案 0 :(得分:0)

您知道是否触发了BeforeSave事件吗?我会写一个临时文件到c驱动器或东西,以确保事件发生。

open "c:\eventcheck.txt" for append as #1
print #1, "event fired"
close #1
ThisWorkbook.SaveAs (fileName)