2010-10-07 52 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

相關問題