2017-08-31 44 views
0

當我使用任務計劃程序作業或SQL Server代理程序作業刷新Excel 2010工作簿時,工作簿中的所有圖像均替換爲紅色x。這兩個作業都調用在工作簿中運行宏的VBS腳本。當我手動運行該VBS腳本時(通過簡單地執行該腳本)就沒有問題了。可能是什麼原因,我該如何解決?我試圖修改Content.MSO文件夾中各種用戶的權限,沒有任何幫助。Excel工作簿在通過任務計劃程序作業或SQL Server代理程序作業刷新後丟失圖像

代碼:

Set objExcel = CreateObject("Excel.Application.14") 
Set objWorkbook = objExcel.Workbooks.Open("D:\Files In\test.xlsm") 
    objExcel.Application.Visible = False 
    objExcel.Application.Run "'test.xlsm'!MAIN_MACRO" 
    objExcel.ActiveWorkbook.Save 
    objExcel.ActiveWorkbook.Saved = True 
    objExcel.ActiveWorkbook.Close(0) 
    objExcel.Quit 
Set objExcel = Nothing 
WScript.Quit 
+0

您能否將腳本添加到您的文章中?您是否還嘗試過通過調度程序或SQLServer運行作業,但打開工作簿? – RealCheeseLord

+0

我剛剛嘗試在打開工作簿的情況下運行它,它沒有任何區別,圖像消失並用紅色x代替。 VBS非常簡單:Set objExcel = CreateObject(「Excel.Application.14」) Set objWorkbook = objExcel.Workbooks.Open(「D:\ Files In \ test.xlsm」) objExcel.Application.Visible = False objExcel.Application.Run 「 'test.xlsm'!MAIN_MACRO」 objExcel.ActiveWorkbook.Save objExcel.ActiveWorkbook.Saved =真 objExcel.ActiveWorkbook.Close(0) objExcel.Quit 設置objExcel =無 WScript.Quit – Rafal

+0

我終於找到了解決這個問題的辦法。找到類似問題的註釋[here](https://stackoverflow.com/a/41161719/8543148)我發現在以下文件夾中缺少INetCache文件夾:* C:\ Windows \ SysWOW64 \ config \ systemprofile \應用程序數據\本地\微軟\的Windows *。一旦作業運行,系統就會在新添加的INetCache文件夾下添加一個名爲Content.MSO文件夾的新文件夾,我相信這個文件夾用於存儲一些臨時文件(即Content.MSO)。我確保運行作業的帳戶有權修改INetCache文件夾。 – Rafal

回答

0

我發下我自己的問題評論這也是一個回答我的問題。我想將這個問題標記爲已回答(儘管看起來有點懷疑我已經回答了我自己的問題並將其標記爲正確,但看不到任何其他方式來關閉它)。

的問題是在以下位置稱爲INetCache缺少的文件夾: C:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile \應用程序數據\本地\微軟\的Windows 當我創造了它,並添加權限它發送給運行作業的用戶(我沒有測試是否需要設置權限),一旦作業運行,系統會在INetCache下創建一個名爲Content.MSO的新文件夾,並且我的Excel報告保留了其所有原始圖像以及嵌入其中的圖標。