2012-12-03 53 views
2

這是我試圖實現的事件的隱退: 計劃任務 - 每天同時運行並啓動VBScript VBScript啓動Excel工作簿並運行宏。這裏是snippet-Excel未在未登錄時啓動

Set xlApp = CreateObject ("Excel.Application") 
xlApp.Visible = False 
Set xlBook = xlApp.Workbooks.Open (xlFilePath,0,False) 
xlApp.Run "Main" 

現在的問題是,如果我手動運行任務,它運行良好。當我沒有登錄到服務器時運行計劃任務時,它不會啓動Excel。當沒有用戶登錄時,我需要在上面的代碼中更改以啓動excel?我已將Excel宏安全性設置爲低。

的Excel 2003和Windows Server2003的64

+0

你知道,如果Excel打開罰款?意味着VBScript運行,而不是VBA宏? –

+0

Excel未打開。我運行了另一個VBScript來檢查excel是否正在運行,並且與計劃任務同時啓動它,並且在進程中找不到excel.exe。 –

回答

0

您應該能夠設置一個選項運行任務時以及有任務運行的用戶是否登錄或不使用的用戶名。下面是從Windows Server 2008的一個例子:

enter image description here

+0

這個選項在2003年不存在。無論如何,當我沒有登錄時,任務會啓動,這是有問題的excel。 –

+0

@KailasDeshpande我對此表示歉意。我注意到另一個答案是關於在Excel中需要用戶界面的問題。這是一個無賴。除了用vbscript或vb.net或類似軟件重新編寫程序之外,我不確定你可以做什麼。如果你確實找到了解決辦法,我會很好奇你知道你做了什麼。祝你好運! –

4

MS Knowledge Base看看 - 根據這一點,Office應用程序需要運行的UI。

因此,嘗試使用任何用戶而是系統用戶:

例如,代碼由任務計劃SYSTEM帳戶運行下開始在相同的環境中「服務器端」 ASP代碼或DCOM代碼。因此,本文介紹的許多問題可能會發生。

此外,嘗試調用Main從Workbook_Open事件在Excel文件中的xlApp.Run "Main",而不是...

1

不知道它是否已經解決了,但我得到了這個問題,並與下面的步驟解決。

創建以下文件夾(S)

(32位,總是)C:\ WINDOWS \ system32 \設置\ systemprofile \桌面

(64位)以上的文件夾和C:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile \ Desktop

如果您使用系統帳戶運行,這將解決此問題。

+0

非常感謝。經過14小時的霰彈槍調試後,我找到了你的答案,並且有所幫助。 –