Du kannst das komplett ohne den Umweg über Excel machen. Dazu musst du halt ein paar Funktionen für den Umgang mit Textdateien benutzen:
Option Explicit
Private Sub DateienSplitten()
Dim TxtIn$(), Arr$()
Dim a&, b&, count&
If Not OpenTxt(TxtIn, ThisWorkbook.Path & "\Test.txt") Then
MsgBox "Pfad falsch!", vbCritical
Exit Sub
End If
ReDim Arr(2)
For a = 1 To UBound(TxtIn)
Arr(b) = TxtIn(a)
b = b + 1
If b = UBound(Arr) Then
MakeFile ThisWorkbook.Path & "\Teil" & count & ".txt", Arr
count = count + 1
b = 0
End If
Next
End Sub
'open file
Function OpenTxt(FileData$(), ByVal FileName$) As Boolean
On Error GoTo BadData
Dim FileNum%, Fields$, I&
'create file
FileNum = FreeFile
ReDim FileData(0 To 0)
'open file for input
Open FileName For Input As FileNum
Do While Not EOF(FileNum)
Line Input #FileNum, Fields
ReDim Preserve FileData(0 To I)
FileData(I) = Fields
I = I + 1
Loop
Close
FileName = 0
Fields = 0
I = 0
OpenTxt = True
Exit Function
BadData:
End Function
'deletes selected file
Function KillFile(Path$)
On Error Resume Next
Kill Path
End Function
'saves data to text file
Function MakeFile( _
ByVal FileName$, ByRef FileLines$(), _
Optional ByVal Overwrite As Boolean = True)
Dim FileNum%, I&, j%, TextOfLine$
'set
FileNum = FreeFile
If Overwrite Then KillFile (FileName)
'create file
Open FileName For Append As #FileNum
For I = LBound(FileLines) To UBound(FileLines)
Print #FileNum, FileLines(I)
Next
Close #FileNum
End Function
Gruß
Till
|