Thema Datum  Von Nutzer Rating
Antwort
23.01.2019 12:22:23 Simon
NotSolved
23.01.2019 12:49:06 Gast24820
NotSolved
Rot Bestimmte Daten von XML über VBA importieren
23.01.2019 23:54:52 Gast84880
Solved

Ansicht des Beitrags:
Von:
Gast84880
Datum:
23.01.2019 23:54:52
Views:
1034
Rating: Antwort:
 Nein
Thema:
Bestimmte Daten von XML über VBA importieren

Möglichkeiten gibt's da viele:

Option Explicit

Sub Test()
  
  Dim r As Object
  Dim vnt As Variant
  Dim i As Long
  
  Set r = CreateObject("VBScript.RegExp")
  
  r.IgnoreCase = True
  r.Global = False
  r.MultiLine = False
  
  'XML-Dateipfad
  vnt = "G:\data\127020.xml"
  
  'Einlesen der XML-Datei
  i = FreeFile
  Open vnt For Input As #i
    vnt = StrConv(InputB(FileLen(vnt), #i), vbUnicode)
  Close #i
  
  'entfernen von Wagenrücklauf-/Zeilenvorschub entfernen
  While InStr(1, vnt, vbCr) > 0 Or InStr(1, vnt, vbLf) > 0
    vnt = Replace$(Replace$(vnt, vbCr, ""), vbLf, "")
  Wend
  
  'versuche Datenbereich zu lesen
  r.Pattern = "<data>(.*)</data>"
  Set vnt = r.Execute(vnt)
  
  If vnt.Count > 0 Then
    
    'Daten zwischen Tags in Array umwandeln (Trennzeichen := Komma)
    vnt = Split(vnt(0).SubMatches(0), ",")
    
    'ersten drei Daten werden ignoriert
    'sollten mehr vorhanden sein,
    'dann gibt es was zu tun...
    If UBound(vnt) > 3 Then
      
      'Daten nach oben verschieben und dabei Information(en) filtern
      'z.B. 1x23 -> 23
      For i = 3 To UBound(vnt)
        vnt(i - 3) = Right$(vnt(i), Len(vnt(i)) - InStr(1, vnt(i), "x"))
        If i > UBound(vnt) - 3 Then vnt(i) = "" 'letzten drei sind leer
      Next
      
      'Daten - bis auf die letzten drei - ausgeben
      With Worksheets("Tabelle1").Range("A1").Resize(UBound(vnt) - 3)
        .NumberFormat = "@" 'Zellenformat: Text
        .Value = WorksheetFunction.Transpose(vnt)
      End With
      
    End If
    
  End If
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.01.2019 12:22:23 Simon
NotSolved
23.01.2019 12:49:06 Gast24820
NotSolved
Rot Bestimmte Daten von XML über VBA importieren
23.01.2019 23:54:52 Gast84880
Solved