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

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

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

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

ThisWorkbook.SaveAs (fileName) 

(其中“fileName”是一个包含正确目录的string,由于某种原因,这并不能像我所期望的那样保存工作簿的副本,如果我打开程序所做的副本并运行该代码,它可以正常工作,但在最初的副本中,当表单处于不活动状态时,SaveAs只是不执行任何操作。该代码位于由BeforeSave事件调用的模块中。

任何想法,为什么这不被运行?

你知道BeforeSave事件是否被触发吗? 我会写一个临时文件到C盘或确保事件正在发射。

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