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, 3870 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
Problem SCCM Fehler: 0x80004005 (2)

Frage von geforce28 zum Thema Windows Server ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Powershell Workflow, CSV Stapelverarbeitung Problem (6)

Frage von Rippchen zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...