[英]Using Excel vba Macro to be run through Windows Schedule Task
我有一個Excel電子表格,我已經設置了一個計時器來將代碼運行到數據庫中。 如果電子表格是打開的,現在時間是在時間段內設置的時間,那么它會將數據導出到數據庫中
我在我的子例程和workbook_open Application.OnTime TimeValue("22:00:00"), "ExportOpenJobs"
中都使用了這一行。
這非常適合電子表格打開時,但我希望能夠通過Windows計划任務進行設置。
我使用Windows Server 2012作為我的主機pc和存儲文件的位置。 在任務計划程序中,我將操作設置為啟動程序,將程序腳本設置為位置和實際的* .xlsm文件以及任務的開始時間。 我在Excel VBA中的時間之前30秒設置此任務。
我的問題是Windows任務計划程序在設置的時間運行,在查看任務歷史記錄后,我可以看到任務已啟動/已完成,操作已啟動/已完成,通常需要大約50分鍾才能完成,但是當我檢查數據庫時Excel VBA沒有跑了。
如何讓我的任務計划程序運行Excel VBA代碼?
在Windows Server中你真的需要安裝Excel,因此應該在另一台機器上完成嗎?
您好我要做的是創建此.VBS文件,然后使用Windows任務計划程序以所需的時間間隔執行此vbs文件。
Set fso = CreateObject("Scripting.FileSystemObject")
curDir = fso.GetAbsolutePathName(".")
Set myxlApplication = CreateObject("Excel.Application")
myxlApplication.Visible = False
Set myWorkBook = myxlApplication.Workbooks.Open( curDir & "\myTest.xlsm" ) 'Change to the actual workbook that has the Macro
myWorkBook.Application.Run "Module1.HelloWorld" 'Change to the Module and Macro that contains your macro
myxlApplication.Quit
此示例確實要求將Excel安裝到運行計划任務的主機上。 如果該主機是服務器或台式計算機是您的選擇。
對於任務的Action部分,Windows任務計划程序應如此完成:
Action: Start a program
Program/script: C:\\Windows\\SysWOW64\\cscript.exe
Add arguments (optional): C:\\Path_to_your_vbs\\Your.vbs
Start in (optional): C:\\Path_to_your_vbs\\
在Windows任務計划程序集中:操作:啟動程序程序腳本:帶有完整引號路徑的Excel.exe。 添加參數:要使用引號中的完整路徑打開的工作簿
看看這個鏈接: https : //answers.microsoft.com/en-us/windows/forum/windows_8-performance/excel-files-can-not-be-opened-in-task-scheduler-in/aa6cf065-09ac -44d8-b6fb-a2f2ecd9b8cc
我敲了幾個小時后為我工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.