AW: Inhalte aus Mappe übernehmen
17.03.2005 10:23:12
Horst
Hallo,
hatte vor Längerem was ähnliches Dank Hilfe dieses Forums
und anderer Quellen im Netz gebastelt
...geben und nehmen....
versuch Dich mal, ob Dir das was nützt:
(1. Kannst die Funktion in einem Sub aufrufen: TXT_einlesen "MyFile.abc"
2. Die Funktionen Split und ReadUntil sind m.Wissens ab Excel2000
integriert und können weggelassen werden, geht aber bei mir SO auch in Excel XP)
-------------MODUL START-----------
Public Function Split(ByVal sIn As String, Optional sDelim As _
String, Optional nLimit As Long = -1, Optional bCompare As _
Long = vbBinaryCompare) As Variant
Dim sRead As String, sOut() As String, nC As Long
If sDelim = "" Or Len(sDelim) > Len(sIn) Then
ReDim Preserve sOut(0)
sOut(0) = sIn
Else
sIn = sIn & sDelim
Do While sIn "" And Len(sDelim)
sRead = ReadUntil(sIn, sDelim, bCompare)
ReDim Preserve sOut(nC)
sOut(nC) = sRead
nC = nC + 1
If nLimit -1 And nC >= nLimit Then Exit Do
Loop
End If
Split = sOut
End Function
Private Function ReadUntil(ByRef sIn As String, _
sDelim As String, Optional bCompare As Long = vbBinaryCompare) As String
Dim nPos As Long
nPos = InStr(1, sIn, sDelim, bCompare)
If nPos > 0 Then
ReadUntil = Left(sIn, nPos - 1)
sIn = Mid(sIn, nPos + Len(sDelim))
End If
End Function
Public Function TXT_einlesen(ByVal Dateiname As String) As Variant
Dim ReadFile, zeile As String, arr_str As Variant
'leere Tabelle zum Einlesen
Workbooks.Add
'Dialog öffnen auf Basis von *.txt, *.log oder *.dat Files
ReadFile = Dateiname
Open ReadFile For Input As #1
Do While Not EOF(1)
Line Input #1, zeile
arr_str = Split(zeile, vbTab) ' statt vbTab ggf ";" oder ","
j = j + 1
For i = 0 To UBound(arr_str)
Cells(j, i + 1) = arr_str(i)
Next i
Loop
Close #1
End Function
--------------------MODUL END --------
Horst vom Host
(bin für heute "runter" von Herber.de-Rückfragen zwecklos :-) )