[英]Is there any way to automatically execute a VBA macro?
我想設置計算機,使其每天自動執行在電子表格或訪問數據庫中編寫的VBA宏。
那么,有什么方法可以從批處理文件中調用VBA宏?
當然。 使用命令行開關時,提供的鏈接適用於有關命令行開關的頁面。 對於Access , 對於Excel
這是我在.bat文件中加載的示例,該文件加載msaccess文件,然后運行存儲的宏。
start msaccess "%localFolder%%localFileName%" /x %macroName%
在這種情況下, %localFolder%%localFileName%
會加到包含mdb / accdb文件的完整路徑中,而%macroName%
是宏的名稱。
對於Excel,只需將要運行的任何內容放在Workbook.Open
事件中。 然后使用類似以下的命令加載它: start excel %workbookPath%
這將創建一個新的Excel實例,打開工作簿,從而觸發Workbook.Open
事件。 如果您認為您可以打開工作簿,則可能還希望傳遞只讀參數/r
以便無需用戶輸入即可重新打開工作簿。
設置好.bat文件后,只需使用Windows Scheduler安排它們。
就個人而言,除非您的腳本是特定於Access或Excel的腳本,否則建議您使用.VBS重寫腳本,以便腳本可以運行而無需Excel或Access的開銷並安排該腳本。 :)
如果你想改變一個電子表格或訪問數據庫中的數據 ,你不妨用VBS和DAO對象:
Set Dbe = CreateObject("DAO.DBEngine.36")
使用DAO更新數據的優點是,與Excel或Access應用程序相比,它是一個更小,更快,更輕的對象。 更強大,更穩定。 崩潰時不拋出消息框:不需要GUI登錄用戶。
僅使用DAO(或ADO)的缺點是它是一個更小,更快,更輕的對象:它無法執行打印或VBA之類的操作(盡管您可以讀取單元格,執行VBS計算,然后插入數據)。
特別是,DAO / ADO對象不能使Excel重新計算單元格值。 為此,您需要Excel。 而且它不能在Access中使用UDF。 為此,您需要訪問。
(您可以使用VBS自動執行Access / Excel,但這只是在Access / Excel之上添加了另一層,因此通常不是一個好主意。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.