我需要通過計劃任務在Excel電子表格中運行宏。 我定義瞭如下工作:如何通過計劃任務運行Excel宏
「C:\ Program Files文件\的Microsoft Office \ OFFICE10 \ EXCEL.EXE」 「」
的問題是,在作業開始時,Excel會顯示彈出並詢問我們是否要禁用/啓用阻止作業執行的宏。
如何運行此宏而無需手動點擊啓用宏?
我需要通過計劃任務在Excel電子表格中運行宏。 我定義瞭如下工作:如何通過計劃任務運行Excel宏
「C:\ Program Files文件\的Microsoft Office \ OFFICE10 \ EXCEL.EXE」 「」
的問題是,在作業開始時,Excel會顯示彈出並詢問我們是否要禁用/啓用阻止作業執行的宏。
如何運行此宏而無需手動點擊啓用宏?
寫一個簡短的VBScript啓動Excel,加載您的工作簿,並使用Application.Run運行宏。讓您的計劃任務運行vbscript。
您可以嘗試降低excel的安全級別,以避免在啓動excel時彈出此窗口。
您不指定在Windows 7旗艦什麼Excel或什麼的Windows(或Macintosh)的版本,所以我會指定我使用Excel 2010中從Office 32位版本64有點...
如果你要保持你的工作簿打開並運行代碼,在指定的時間,後來,那就試試這個..
將新代碼模塊插入到您的項目中 - 或者 - 使用您的項目中已有的模塊。
創建調度子程序,如下圖所示:
Sub Scheduler()
'-- RUNS SUB(S) (OR FUNCTIONS) AT TIME SCHEDULED.
Application.OnTime TimeValue("11:46:40"), "TheScheduledSub"
End Sub
創建要運行一個子程序(或功能)。下面是一個用於本實施例中:
Sub TheScheduledSub()
Debug.Print "TheScheduledSub() has run at " & Time
End Sub
Scheduler()
將在內部Scheduler()
指定的確切時間,通過TimeValue
定義執行TheScheduledSub()
。你可以閱讀更多關於TimeValue
here。
您可能可以傳遞您希望Scheduler()sub執行您的子或函數的時間值作爲子參數。
可以說,從現在開始你可能會運行一個小時5小時。 I.E. Application.OnTime Now + TimeValue(「05:00:00」),「TheScheduledSub」
或者從現在開始的一天?玩它。
我沒有得到兩個潛艇在不同的時間執行。我也試圖同時執行兩個。我同時執行兩個不同的子目錄的經驗是,第二個子目錄似乎在第一個子目錄之前執行,但我沒有充分探索它。所以YMMV。
我不認爲Excel VBA具有多線程功能,因此請牢記這一點。我正在從Office套件運行32位Excel 2010。不知道64位Office Excel的行爲或其他任何版本或平臺。無論如何,多線程/多任務處理Excel VBA不是你問的問題,而是需要考慮的問題。
看到這個問題,並玩上述我可以想到一些想法,我想嘗試自己!
您還可以使用工作簿打開並調用宏。只要有計劃的任務打開工作簿,宏將在工作簿打開時運行。
另外,我發現這是一個好主意,有
Application.DisplayAlerts = False
之初禁用運行時可能會中斷您的宏任何彈出消息。
還是看視頻教程: http://youtu.be/lFSgV2gym9g
這可能有助於https://stackoverflow.com/questions/22771185/how-to-set-recurring-schedule-for-xlsm-file-using-windows-task - 程序員 – Justin 2018-01-18 03:45:35