Eine Textdatei mit folgendem Inhalt:Textdatei Zeilenüberschriften zu Spalten in Excel
userId=10101
givenname=Mark
orclmaidenname=Visser
[email protected]
userID=10102
givenname=Jan
orclmaidenname=Klaassen
userID=10104
givenname=Jessica
orclmaidenname=Host
[email protected]
Und so weiter.
Wie konvertiere ich diese TXT-Datei in ein Excel-Arbeitsblatt, wo die Zeilenüberschriften aus der Textdatei Spaltenüberschriften sind und die Zeilen aus der Excel-Tabelle mit den entsprechenden Werten aus der Textdatei gefüllt werden?
Die TXT-Datei hat mehr als 1000 Elemente, aber nicht alle Elemente haben die gleichen Zeilenüberschriften (zum Beispiel einige haben keine "Mail").
Das ist was ich bisher habe. Es zieht "uid", "givenname", "orclmaidenname" korrekt. Das Hinzufügen von "Mail" führt jedoch zu einem unerwarteten Ergebnis. Ich denke, weil nicht alle Artikel die Zeilenüberschrift "mail" enthalten.
Sub Frank()
Application.ScreenUpdating = False
' Name current file
MyMacroFile = ActiveWorkbook.Name
' Prompt for file
MyFile = Application.GetOpenFilename("All Files,*.*")
If MyFile = False Then
Exit Sub
End If
' Open file
Workbooks.OpenText Filename:=MyFile, Origin:=xlWindows, StartRow:=1, _
DataType:=xlFixedWidth, FieldInfo:=Array(0, 2)
' Name text file
MyTextFile = ActiveWorkbook.Name
' Find cell with "uid", "givenname", "orclmaidenname"
Do
Windows(MyTextFile).Activate
' Exit loop if can't find any matches
On Error GoTo Err_Fix
Cells.Find(What:="uid=", After:=ActiveCell, LookIn _
:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
xlNext, MatchCase:=False).Activate
Cells.Find(What:="givenname=", After:=ActiveCell, LookIn _
:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
xlNext, MatchCase:=False).Activate
Cells.Find(What:="orclmaidenname=", After:=ActiveCell, LookIn _
:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
xlNext, MatchCase:=False).Activate
On Error GoTo 0
' Exit loop if starting search over form top
If ActiveCell.Row <= MyRow Then
Exit Do
End If
' Get specific characters of selected rows
MyValue = Right(ActiveCell.Value, 6)
MyValue2 = Right(ActiveCell.Value, Len(ActiveCell.Value) - 10)
MyValue3 = Right(ActiveCell.Value, Len(ActiveCell.Value) - 15)
MyRow = ActiveCell.Row
' Paste value in spreadsheet with macro in columns A, B and C
Windows(MyMacroFile).Activate
Range("A65536").End(xlUp).Offset(1, 0) = MyValue
Range("B65536").End(xlUp).Offset(1, 0) = MyValue2
Range("C65536").End(xlUp).Offset(1, 0) = MyValue3
Loop
Err_Fix:
Windows(MyTextFile).Activate
ActiveWorkbook.Close
Application.ScreenUpdating = True
Exit Sub
End Sub
Irgendein Einblick?
Was war dieses "unerwartete Ergebnis"? –
Im Grunde hat es die ganze Tabelle gemischt. Spalten enthielten Werte aus verschiedenen Zeilen, die nicht mit dem Original übereinstimmten. – Grote
Funktioniert das wirklich in Ordnung? Es scheint, als ob es nur eine Zelle mit 'orclmaidenname =' auswählt und dann Ihr anderes Arbeitsblatt mit Teilen seines Wertes füllt. –