Ich habe dieses Skript, das gut mit xls, aber ich wollte es für xlsx verwenden. Ich habe die Erweiterung in .xlsx geändert und den Link obj.workbook auf 51 geändert. Es führt die offene Operation nicht durch, aber ich bin nicht sicher, was ich vermisse.öffnen und speichern xlsx als csv-Datei mit vscript
WorkingDir = "C:\Test\Excel"
savedir="C:\Test\"
Extension = ".xlsx"
Dim fso, myFolder, fileColl, aFile, FileName, SaveName
Dim objExcel, objWorkbook
Set fso = CreateObject("Scripting.FilesystemObject")
Set myFolder = fso.GetFolder(WorkingDir)
Set fileColl = myFolder.Files
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = False
For Each aFile In fileColl
ext = Right(aFile.Name,4)
name= Left(aFile.Name,Len(aFile.Name)-3) REM changed
If UCase(ext) = UCase(extension) Then
'open excel
FileName = Left(aFile,InStrRev(aFile,"."))
Set objWorkbook = objExcel.Workbooks.Open(aFile)
SaveName = savedir & name & "csv" REM changed
objWorkbook.SaveAs SaveName,51
objWorkbook.Close
End If
Next
Set objWorkbook = Nothing
Set objExcel = Nothing
Set myFolder = Nothing
Set fileColl = Nothing
fso.DeleteFile(WorkingDir&"\*"&Extension) REM changed
Set fso = Nothing
Danke nochmal! Ich habe es einfach repurposed, um die 4-Zeichen-Erweiterung statt 3 zu behandeln. Das ist viel sauberer und ich werde das sicher verwenden. Außerdem ist 51 nicht der Konvertierungscode für eine CSV-Datei. Es ist 23, wenn es jemand anderes braucht. – Wezel