Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

XLS in CSV Problem mit VBS Fehler 13 (Typen unverträglich)

Frage Microsoft Microsoft Office

Mitglied: big-bastian

big-bastian (Level 1) - Jetzt verbinden

12.09.2012 um 10:48 Uhr, 3973 Aufrufe, 1 Kommentar

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?

1a5863557157338c1b8aa04c9f83ef44 - Klicke auf das Bild, um es zu vergrößern


Batch Datei für den Aufruf es VBS Skript:
01.
@echo off & setlocal 
02.
for /f "delims=" %%i in ('cscript //nologo "C:\test\neu\xls2csv.vbs" "C:\test\neu\PERMANENTE.XLS"') do set Erg=%%i 
03.
If "%Erg%"=="OK" goto :Weiter 
04.
If "%Erg%" neq "" echo %Erg% 
05.
::Fehlermeldung lesen lassen ... 
06.
pause 
07.
goto :eof 
08.
:Weiter 
09.
echo Hier geht es nach der Konvertierung weiter ... 

Hier VBS Skript:
01.
'XLS2CSV.vbs 
02.
Const TABELLE = "Tabelle1" 'Zu exportierende Daten in "Tabelle1" ... 
03.
Const ABZEILE = 1          '... beginnen in Zeile 1 ... 
04.
Const ABSPALTE = 1         '... und Spalte A ... 
05.
Const ANZSPALTEN = 15       '... und umfassen 15 zusammenhängende Spalten. 
06.
 
07.
Const ZIELPFAD = "C:\test\neu\" 'Zielpfad mit abschließendem \ angeben 
08.
Const TRENN = ";"          'Trennzeichen 
09.
 
10.
Dim oDatei 
11.
Set fso = CreateObject("Scripting.FileSystemObject") 
12.
If WScript.Arguments.Count < 1 Then 
13.
	WScript.Echo "Angabe der Excel-Datei erforderlich!" 
14.
	WScript.Quit(1) 
15.
End If 
16.
 
17.
Set oArgs = WScript.Arguments 
18.
sXLDat = oArgs(0) 
19.
If Not fso.FileExists(sXLDat) Then 
20.
	WScript.Echo sXLDat & " nicht gefunden!" 
21.
	WScript.Quit(1) 
22.
End If 
23.
 
24.
sXLSDatei = fso.GetFile(sXLDat).Path 'Vollständigen Dateinamen mit Pfad ermitteln 
25.
If LCase(Right(sXLSDatei, 4)) <> ".xls" Then 
26.
	WScript.Echo "Angabe einer Excel-Datei (Typ .xls) erforderlich!" 
27.
	WScript.Quit(1) 
28.
End If 
29.
 
30.
sXLSPfad = Left(sXLSDatei, InStrRev(sXLSDatei, "\")) 'Pfad mit abschließendem "\" 
31.
sXLSName = Mid(sXLSDatei, InStrRev(sXLSDatei, "\") + 1) 
32.
sDateiName = Left(sXLSName, Len(sXLSName) - 4) 'ohne ".xls" 
33.
 
34.
DATEI = sXLSPfad & sDateiName & ".CSV" 'Zieldatei 
35.
Set oDatei = fso.OpenTextFile(DATEI, 2, True) 'Datei immer neu erstellen 
36.
 
37.
On Error Resume Next 
38.
Set XL = WScript.CreateObject("Excel.Application") 
39.
If Err.Number Then Fehler Err.Number, Err.Description 
40.
Set oWB = XL.Workbooks.Open(sXLSDatei) 
41.
If Err.Number Then Fehler Err.Number, Err.Description 
42.
    
43.
iZeile = ABZEILE 
44.
With oWB.Worksheets(TABELLE) 
45.
	If Err.Number Then Fehler Err.Number, Err.Description 
46.
    Do While .Cells(iZeile, ABSPALTE).Value <> "" 
47.
        sZeile = .Cells(iZeile, ABSPALTE).Value 
48.
        For i = 2 To ANZSPALTEN 
49.
            sZeile = sZeile & TRENN & .Cells(iZeile, ABSPALTE + i - 1).Value 
50.
        Next 
51.
        oDatei.WriteLine sZeile 
52.
		If Err.Number Then Fehler Err.Number, Err.Description 
53.
        iZeile = iZeile + 1 
54.
		If Zeile > 65536 Then Exit Do 
55.
    Loop 
56.
End With 
57.
 
58.
oDatei.Close 
59.
oWB.Saved = True 
60.
XL.Application.Quit 
61.
WScript.Echo "OK" 
62.
 
63.
Sub Fehler(Fehlernummer, Fehlertext) 
64.
WScript.Echo "Fehler " & Fehlernummer & " (" & Fehlertext & ") aufgetreten!" 
65.
oWB.Saved = True 
66.
XL.Application.Quit 
67.
WScript.Quit(Err.Number) 
68.
End Sub
Mitglied: Biber
12.09.2012, aktualisiert um 16:18 Uhr
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):
  • 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
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Wo ist der Fehler in diesem VBS Codeausschnitt? (2)

Frage von gabrixl zum Thema VB for Applications ...

Webentwicklung
gelöst Problem mit Joomla http Fehler 404.0 (5)

Frage von Leo-le zum Thema Webentwicklung ...

Microsoft Office
gelöst Excel csv-Import Zeichensatz-Problem (2)

Frage von thaefliger zum Thema Microsoft Office ...

Batch & Shell
Per Batch in Aufgabeplanung XLS in CSV umwandeln (21)

Frage von dtbsys zum Thema Batch & Shell ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...