簡體   English   中英

使用Excel vba宏通過Windows計划任務運行

[英]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

Application.Run方法(Excel)

此示例確實要求將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM