「內存不足」好吧,我周圍環顧了很多,我似乎沒有發現任何人甚至有同樣的問題。我試圖實現一個簡單的VBScript將一堆.xls文件轉換爲.csv。一旦我使用CreateObject,我會得到一個「內存不足」的錯誤,儘管我還沒有做任何事情(即我沒有開始迭代文件),即使我在啓動機器後嘗試了正確的操作(Windows 7 64位4GBram,空閒時使用約2.5GB)。代碼如下關於CreateObject(「Excel.Application」)在vbscript
Dim path1, path2, csvname
path1 = "path1"
path2 = "path2"
Dim fso, folder, files
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(path1)
Set files = folder.Files
Dim oExcel, oBook
Set oExcel = CreateObject("Excel.Application")
for each f in files
Set oBook = oExcel.Workbooks.Open(path1 & "\" f.name)
csvname = path2 & Left(f.name,len(f.name)-4) & ".csv"
WScript.Echo csvname
oBook.SaveAs csvname, 6
oBook.Close False
next
oExcel.Quit
WScript.Echo "Done"
我得到創建的EXCEL.EXE * 32個過程中,使用約14MB,我則必須手動殺死在任務管理器。
謝謝!
編輯:修正了代碼中的一些錯誤(有兩個不同的名稱用於文件對象,忘了Dim oBook),因爲代碼沒有得到那麼多,所以沒有拋出錯誤。編輯2:所以我只是把它複製到Excel中的VBA Sub中,它的工作正常(好吧,發現了另一個愚蠢的錯誤,我不得不nix的Wscript行)。任何想法爲什麼我不能在我的機器上在cscript中創建一個excel對象?
VBS在我看來很好,除非假設文件擴展名是4個字符。您可能希望在創建excel對象後立即通過'oExcel.Visible = True'使其可視化爲可視化。 – PatricK