11.06.2020, 08:20
(Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2020, 08:42 von WillWissen.)
Hallo Zusammen,
ich lese eine xml Datei in Excel ein nun möchte ich nur einzelne Spalten in ein neues Tabellenblatt kopieren.
Dies funktioniert soweit mit folgendem Makro:
Nun kann es vorkommen, dass eine Spalte in der xml nicht vorhanden ist.
Diese Spalte soll in dem neuen Tabellenblatt leer bleiben.
Bisher werden die Spalten fortlaufend ausgefüllt.
Was muss ich im Code hinzufügen damit die die leere Spalte übersprungen wird.
Ich hoffe ich konnte es einigermaßen erklären.
Viele Grüße
Thomas
ich lese eine xml Datei in Excel ein nun möchte ich nur einzelne Spalten in ein neues Tabellenblatt kopieren.
Dies funktioniert soweit mit folgendem Makro:
Code:
Public Sub Kopieren()
Dim WkSh_Q As Worksheet
Dim WkSh_Z As Worksheet
Dim rZelle As Range
Dim aUeberschr As Variant
Dim iIndx As Integer
Dim iSpalte As Integer
aUeberschr = Array("/trk/trkseg/trkpt/@lat", "/trk/trkseg/trkpt/@lon", "/trk/trkseg/trkpt/ele", "/trk/trkseg/trkpt/time", "/trk/trkseg/trkpt/cmt")
Application.ScreenUpdating = False
Set WkSh_Q = Worksheets("GPX_XML") ' das Quell-Tabellenblatt
Set WkSh_Z = Worksheets("GPX") ' das Ziel-Tabellenblatt
With WkSh_Q.Rows(1)
For iIndx = 0 To UBound(aUeberschr)
Set rZelle = .Find(aUeberschr(iIndx), LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
iSpalte = iSpalte + 1
WkSh_Q.Columns(rZelle.Column).Copy Destination:=WkSh_Z.Columns(iSpalte)
End If
Next iIndx
End With
Application.ScreenUpdating = True
End Sub
Nun kann es vorkommen, dass eine Spalte in der xml nicht vorhanden ist.
Diese Spalte soll in dem neuen Tabellenblatt leer bleiben.
Bisher werden die Spalten fortlaufend ausgefüllt.
Was muss ich im Code hinzufügen damit die die leere Spalte übersprungen wird.
Ich hoffe ich konnte es einigermaßen erklären.
Viele Grüße
Thomas