Supportnet / Forum / Anwendungen(Java,C++...)
excel-makro und opentext
Frage
hallo leute!
Ich versuche mit visual basic ein makro zu schreiben um mehrere dateien aus einem verzeichnis einzulesen und zu verarbeiten.
ich benutze dazu folgende anweisung:
ImportFile = Dir("c:\test\*.*")
For j = 1 To 72
Workbooks.OpenText Filename:= _
ImportFile _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False _
, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1))
... usw
next j
problem: die dateien haben kein endung, also denkt excel sie müssen auf .xls enden, worauf natürlich eine fehlermeldung kommt, dass die datei blabla.xls nicht existiert.
aber: wenn ich eine beliebige datei einmal manuell über den öffnen-dialog öffne (und dabei Dateityp = Alle Dateien(*.*) )angebe, funktioniert auch das makro plötzlich. solange bis ich excel wieder schliesse. kann ich nicht in der opentext anweisung irgendwo noch den dateityp, der zu öffnen ist, angeben?
oder gibts eine andere lösung dateien in excel zu importieren?
mfg, raikm
Antwort 1 von nighty
hi raikm :)
sollte es vb unter excel sein so ist dieses makro leicht anzupassen,liest beliebig viele datein aus einer directorie :)
hier koenntest du es auch so gestalten :)
statt .Filename = "*.xls"
alternativ .Filename = "*.*"
der pfad .LookIn = "C:\test3"
gruss nighty
Sub makro01()
Application.DisplayAlerts = False
Dim mappZahl
With Application.FileSearch
.NewSearch
.LookIn = "C:\test3"
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For mappZahl = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(mappZahl)
Rem das workbook(index) ist nun geoeffnet
Workbooks(2).Close
Next mappZahl
End If
End With
Application.DisplayAlerts = True
End Sub
sollte es vb unter excel sein so ist dieses makro leicht anzupassen,liest beliebig viele datein aus einer directorie :)
hier koenntest du es auch so gestalten :)
statt .Filename = "*.xls"
alternativ .Filename = "*.*"
der pfad .LookIn = "C:\test3"
gruss nighty
Sub makro01()
Application.DisplayAlerts = False
Dim mappZahl
With Application.FileSearch
.NewSearch
.LookIn = "C:\test3"
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For mappZahl = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(mappZahl)
Rem das workbook(index) ist nun geoeffnet
Workbooks(2).Close
Next mappZahl
End If
End With
Application.DisplayAlerts = True
End Sub

