XLS in CSV Problem mit VBS Fehler 13 (Typen unverträglich)
Hallo zusammen,
ich habe hier im Forum 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?
Batch Datei für den Aufruf es VBS Skript:
Hier VBS Skript:
ich habe hier im Forum 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?
Batch Datei für den Aufruf es VBS Skript:
@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 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 15 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 < 1 Then
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 191088
Url: https://administrator.de/forum/xls-in-csv-problem-mit-vbs-fehler-13-typen-unvertraeglich-191088.html
Ausgedruckt am: 17.04.2025 um 23:04 Uhr
1 Kommentar
Moin big-bastian,
ich denke, das Problem ist ein nicht ganz unverschuldetes Zusammentreffen ünglücklicher Umstände.
Die Funktion "Arbeitstag()" war bis inclusive Excel 2003 nur dann verfügbar,
wenn in der Excelmappe das AddIn "Analyse-Funktionen" (und ggf. auch noch "Analyse-Funktionen für VBA") eingebunden war.
Ab Excel 2007 ist diese Funktion ohne AddIn verfügbar.
Deine Excel-Datei mit der Endung .xls wird vermutlich als "Excel-Datei 97-2003" geöffnet - und das fehlt dieses AddIn dann.
Mögliche Abhilfe(n):
So zumindest meine Vermutung - aber ich bin auch nicht der Excel/VBA-Spezialist.
Grüße
Biber
ich denke, das Problem ist ein nicht ganz unverschuldetes Zusammentreffen ünglücklicher Umstände.
Die Funktion "Arbeitstag()" war bis inclusive Excel 2003 nur dann verfügbar,
wenn in der Excelmappe das AddIn "Analyse-Funktionen" (und ggf. auch noch "Analyse-Funktionen für VBA") eingebunden war.
Ab Excel 2007 ist diese Funktion ohne AddIn verfügbar.
Deine Excel-Datei mit der Endung .xls wird vermutlich als "Excel-Datei 97-2003" geöffnet - und das fehlt dieses AddIn dann.
Mögliche Abhilfe(n):
- Die Ausgangsdatei mal nicht im Kompat-Modus, sondern als ".xlsx" speichern, falls du ein Excel 2007/2010 hast
- im .xls-Format sicherstellen, dass die Addin-Verweise gesetzt sind
- die Funktion "Arbeitstage" durch eine eigene Formel nachbilden, Vorlagen dafür z.B. auf excelformeln.de
So zumindest meine Vermutung - aber ich bin auch nicht der Excel/VBA-Spezialist.
Grüße
Biber