Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 4023 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
Batch & Shell
Per Batch in Aufgabeplanung XLS in CSV umwandeln (21)

Frage von dtbsys zum Thema Batch & Shell ...

XML
gelöst CSV bzw. XLS Dateien in ein XML Schema einbinden (3)

Frage von fisi-flo zum Thema XML ...

Microsoft Office
Laufzeitfehler 13 in Word 2013 (5)

Frage von Wild-Wolf zum Thema Microsoft Office ...

VB for Applications
gelöst Wo ist der Fehler in diesem VBS Codeausschnitt? (2)

Frage von gabrixl zum Thema VB for Applications ...

Neue Wissensbeiträge
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (35)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (19)

Frage von ph5555 zum Thema Windows 7 ...