[英]“Out of Memory” on CreateObject(“Excel.Application”) in vbscript
好的,我環顧了四周,似乎還沒有發現有人遇到同樣的問題。 我正在嘗試實現一個簡單的vbscript,將一堆.xls文件轉換為.csv。 使用CreateObject時,即使我還沒有做任何事情(例如,我還沒有開始遍歷文件),並且即使在啟動計算機后立即嘗試也遇到了“內存不足”錯誤(Windows 7 64位4GBram,閑置時使用約2.5GB)。 代碼如下
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"
我確實使用大約14Mb創建了一個EXCEL.EXE * 32進程,然后必須在任務管理器中手動將其殺死。
謝謝!
編輯:修復了代碼中的一些錯誤(有兩個不同的名稱用於文件對象,忘記了Dim oBook),該錯誤並沒有引發錯誤,因為代碼沒有走那么遠。
Edit2:所以我只是將其復制到Excel中的VBA Sub中,它按原樣工作正常(好吧,發現了另一個愚蠢的錯誤,我不得不修改Wscript行)。 有什么想法為什么不能在計算機上的cscript中創建excel對象?
嘗試使用正確的32或64位cscript / wscript for excel(似乎是32位)。 c:\\ windows \\ syswow64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.