ich habe im Netz ein Super Skript zum Umwandeln von XLS in CSV gefunden welches auch super läuft. Doch jetzt habe ich den der XLS Datei eine Formel und bekomme beim umwandeln den Fehler 13 (Typen unverträglich). Wenn ich die Formel in F2 entferne läuft das Skript ohne Probleme. Kann mir jemand helfen?
Hier die Batch Datei für den Aufruf der VBS:
@echo off & setlocal
for /f "delims=" %%i in ('cscript //nologo "C:\test\neu\xls2csv.vbs" "C:\test\neu\PERMANENTE.XLS"') do set Erg=%%i
If "%Erg%"=="OK" goto :Weiter
If "%Erg%" neq "" echo %Erg%
::Fehlermeldung lesen lassen ...
pause
goto :eof
:Weiter
echo Hier geht es nach der Konvertierung weiter ...
Hier das VBS Skript:
'XLS2CSV.vbs
Const TABELLE = "Tabelle1" 'Zu exportierende Daten in "Tabelle1" ...
Const ABZEILE = 1 '... beginnen in Zeile 1 ...
Const ABSPALTE = 1 '... und Spalte A ...
Const ANZSPALTEN = 15 '... und umfassen 10 zusammenhängende Spalten.
Const ZIELPFAD = "C:\test\neu\" 'Zielpfad mit abschließendem \ angeben
Const TRENN = ";" 'Trennzeichen
Dim oDatei
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count WScript.Echo "Angabe der Excel-Datei erforderlich!"
WScript.Quit(1)
End If
Set oArgs = WScript.Arguments
sXLDat = oArgs(0)
If Not fso.FileExists(sXLDat) Then
WScript.Echo sXLDat & " nicht gefunden!"
WScript.Quit(1)
End If
sXLSDatei = fso.GetFile(sXLDat).Path 'Vollständigen Dateinamen mit Pfad ermitteln
If LCase(Right(sXLSDatei, 4)) ".xls" Then
WScript.Echo "Angabe einer Excel-Datei (Typ .xls) erforderlich!"
WScript.Quit(1)
End If
sXLSPfad = Left(sXLSDatei, InStrRev(sXLSDatei, "\")) 'Pfad mit abschließendem "\"
sXLSName = Mid(sXLSDatei, InStrRev(sXLSDatei, "\") + 1)
sDateiName = Left(sXLSName, Len(sXLSName) - 4) 'ohne ".xls"
DATEI = sXLSPfad & sDateiName & ".CSV" 'Zieldatei
Set oDatei = fso.OpenTextFile(DATEI, 2, True) 'Datei immer neu erstellen
On Error Resume Next
Set XL = WScript.CreateObject("Excel.Application")
If Err.Number Then Fehler Err.Number, Err.Description
Set oWB = XL.Workbooks.Open(sXLSDatei)
If Err.Number Then Fehler Err.Number, Err.Description
iZeile = ABZEILE
With oWB.Worksheets(TABELLE)
If Err.Number Then Fehler Err.Number, Err.Description
Do While .Cells(iZeile, ABSPALTE).Value ""
sZeile = .Cells(iZeile, ABSPALTE).Value
For i = 2 To ANZSPALTEN
sZeile = sZeile & TRENN & .Cells(iZeile, ABSPALTE + i - 1).Value
Next
oDatei.WriteLine sZeile
If Err.Number Then Fehler Err.Number, Err.Description
iZeile = iZeile + 1
If Zeile > 65536 Then Exit Do
Loop
End With
oDatei.Close
oWB.Saved = True
XL.Application.Quit
WScript.Echo "OK"
Sub Fehler(Fehlernummer, Fehlertext)
WScript.Echo "Fehler " & Fehlernummer & " (" & Fehlertext & ") aufgetreten!"
oWB.Saved = True
XL.Application.Quit
WScript.Quit(Err.Number)
End Sub