2014-01-17 50 views
0

編輯:只有當Outlook實例已在運行時纔會發生此錯誤。VBA運行時錯誤:249 - 僅在Schtasks發生時

這是一個奇怪的錯誤。我已經設置了一個宏,在每天早上下載報告後自動執行。

宏被該VBS代碼執行:

Dim xl 
Set xl = CreateObject("Excel.Application") 

Dim WshShell, strCurDir 
Set WshShell = CreateObject("WScript.Shell") 
strCurDir = WshShell.CurrentDirectory 

xl.Application.Workbooks.Open(strCurDir & "\TodaysScript.xlsm") 
xl.Application.Visible = False 
xl.Application.run "'TodaysScript.xlsm'!autoOpen" 

xl.DisplayAlerts = False 
xl.Quit 

Set xl = Nothing 
Set WshShell = Nothing 

autoOpen是我跑(我故意迴避Auto_Open

一切工作的樂趣,當我運行腳本的宏的名稱,但是腳本通過schtasks執行的那一刻就會返回該錯誤:

enter image description here

調試時,在這裏顯示出來:

enter image description here

我已經做了很多的閱讀,知識庫文章沒有幫助。

如果雙擊我的VBS並正常執行,它會如何工作,但是當我通過schtasks執行它時,會出現錯誤。

這裏是schtask查詢

schtasks /create /tn "Reports" /tr %file% /sc weekly /st 10:00:00 /d MON,TUE,WED,THU,FRI /V1 

我還可以補充:這是昨天的工作,但現在它已經停止了我的兩個電腦上工作,和學校的電腦。

+0

莫非它可能是一個權限問題?不完全在這些語言的領域,但我已經寫了批處理文件,由SQL Server代理作業執行,如果我只是雙擊.bat文件,它運行良好,但是當實際作業運行它時,它爲任務運行的帳戶提供權限錯誤。 –

+0

我也在想。我怎樣才能以編程方式更改執行VBA的用戶? – Moe

+0

我也相信這是一個權限問題。給'schtasks'管理員權限來執行腳本,這樣就可以了。 –

回答

0

正如你的問題的評論中指出,如果它是一個權限問題,您可以更改用戶運行,當您運行命令,這裏的語法

schtasks /Create 
[/S system [/U username [/P [password]]]] 
[/RU username [/RP [password]] /SC schedule [/MO modifier] [/D day] 
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime] 
[/RI interval] [ {/ET endtime | /DU duration} [/K] 
[/XML xmlfile] [/V1]] [/SD startdate] [/ED enddate] [/IT] [/Z] [/F] 

來源:http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs.85).aspx

+0

如果我想以管理員身份運行它,我會使用'/ S本地主機/ U管理員' - 我希望這個腳本可以移植到任何計算機上,我怎樣才能讓它提示輸入密碼? – Moe

+0

根據參數說明,如果您省略了密碼,它會自動提示輸入密碼。/ P [密碼] 一個值,指定給定用戶上下文的密碼。如果省略,Schtasks.exe會提示用戶輸入。 –