2010-10-07 43 views
2

我们有一个软件允许用户运行报表。此报告的模板是存在于网络驱动器上的Excel工作簿。步骤如下:如何保存非活动工作表的副本 - Excel 2003 vba

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

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

ThisWorkbook.SaveAs (fileName) 

(其中“filename”是包含正确的目录的字符串出于某种原因,这并不保存的副本。工作簿,如果我打开由程序创建的副本并运行该代码,它可以正常工作,但在最初的副本中当工作表未处于活动状态时,SaveAs只是不会执行任何操作。模块由BeforeSave事件调用。

任何想法,为什么这是没有运行?

回答

0

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

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

我想到了这一点,并写了一些简短的代码来测试它。我在其中一个单元格中放置了一个计数器,并使BeforeSave事件增加了该值。错误的SaveAs事件之前还有一些代码行和我已验证可以使用的代码。这只是一条似乎不会发生的线路。 – Michael 2010-10-07 22:03:10

+0

奇怪。也许是因为它隐藏了?也许你应该尝试使用另一种方法来复制文件? – bugtussle 2010-10-08 15:14:35

相关问题