簡體   English   中英

vbscript中CreateObject(“ Excel.Application”)上的“內存不足”

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM