[英]Is it possible to run macro only when excel file is opened by Task Scheduler?
我已計划要打開,運行宏並在此之后關閉文件。 一切正常,除非我要手動打開文件,否則它將在運行宏時在打開時關閉。 是否可以將宏設置為僅在文件自動打開時運行?
聽起來您的Sub正在使用Open Event。 只需將其作為模塊內部的常規Sub,然后使用vbs
腳本打開工作表並運行宏即可。
我過去經常這樣做,但是找不到舊的腳本。 發現了這個,我知道它和我以前的相似。
Dim xlApp
Dim xlWkb
Set xlApp = CreateObject("excel.application")
Set xlWkb = xlApp.Workbooks.Open("PATH TO YOUR FILE")
xlApp.Visible = True
xlWkb.RunAutoMacros 1 'enables macros to be run on open
xlApp.Run ("YOUR PROCEDURE")
xlApp.Workbooks("YOUR WORKBOOK NAME").Save 'Save the workbook
xlApp.Quit 'quits excel
另存為.vbs並計划。 在這里找到示例。 這樣,您可以隨時打開和編輯腳本,而無需自動運行。
如果您一天中自己打開文件的時間與調度程序打開文件的時間是不重疊的,則只需在運行代碼之前添加當前時間的檢查,並且它位於調度程序窗口中即可運行宏,其他明智的不要。
Excel無法檢測它是手動打開還是由計划程序打開。 但是,如果手動打開它,則可以在受保護的視圖中打開它,並以這種方式禁用宏。 在“打開..”對話框中,單擊“打開”按鈕上的小箭頭,然后選擇“受保護的視圖”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.