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中,它工作得很好(好吧,发现了另一个愚蠢的bug,我不得不修改Wscript行)。有什么想法我不能在我的机器上的cscript中创建一个excel对象吗?
答案 0 :(得分:0)
尝试使用正确的32位或64位cscript / wscript for excel,它似乎是32位。 C:\ WINDOWS \ SysWow64资料