Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Strings aus Stringvariable extrahieren

Strings aus Stringvariable extrahieren
15.11.2015 11:04:25
mpb
Hallo,
ich hole mir per VBA von einer Website das Ergebnis einer Suchabfrage ab und speichere das Ergebnis in einer als String deklarierten Variable MYtxt (ca. 80000 Zeichen). Die Ergebnislisten enthalten 100 oder weniger Treffer, die jeweils wieder verlinkt sind. In meiner Variablen ist dann 100mal folgender Text vorhanden:
<A HREF=""javascript:NeuFenster('/cgi-bin/bl_aufruf.pl?PHPSESSID=xxxxxxxx</A>
xxxxxxxx steht für eine beliebige Zahl unterschiedlicher Zeichen, die sich von Treffer zu Treffer unterscheiden.
Ich möchte nun die hundert Strings aus dem gesamten String extrahieren und in Zellen speichern. Wie kann ich das bewerkstelligen?
Vielen Dank!
Gruß
Martin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Strings aus Stringvariable extrahieren
15.11.2015 11:42:29
Sepp
Hallo Martin,
das kann z. B. dies Routine erledigen.
Sub extractText(strText As String, Target As Range)
Dim lngP1 As Long, lngP2 As Long, lngI As Long
Dim strF1 As String, strF2 As String
Dim rng As Range

strF1 = "<A HREF=""javascript:NeuFenster('/cgi-bin/bl_aufruf.pl?PHPSESSID"
strF2 = "</A>"

Set rng = Target.Cells(1, 1)

Do
  lngP1 = InStr(lngP2 + 1, strText, strF1)
  If lngP1 > 0 Then
    lngP2 = InStr(lngP1 + Len(strF1), strText, strF2)
    If lngP2 > 0 Then
      rng.Offset(lngI, 0) = Mid(strText, lngP1, lngP2 + Len(strF2) - lngP1)
      lngI = lngI + 1
    End If
  End If
Loop While lngP1 > 0 And lngP2 > 0


Set rng = Nothing
End Sub

Den Code rufst du so auf.
Call extractText(MYtxt, Sheets("Tabelle2").Range("A1"))

Deine Variable und den Ausgabeort musst du natürlich anpassen.
Gruß Sepp

Anzeige
AW: Strings aus Stringvariable extrahieren
15.11.2015 11:43:19
Beverly
Hi Martin,
mir ist nicht ganz klar, ob du nur die Zahlen oder den gesamten String extrahieren willst - ich bin mal von letzterem ausgegangen:
Sub Trennen()
Dim MYtxt As String
Dim arrDaten
Dim lngZaehler As Long
MYtxt = Range("A1")  ' String wird aus A1 genommen
arrDaten = Split(MYtxt, "/A>")
For lngZaehler = LBound(arrDaten) To UBound(arrDaten)
arrDaten(lngZaehler) = arrDaten(lngZaehler) & "/A>"
Next lngZaehler
Range("B1").Resize(UBound(arrDaten), 1) = Application.Transpose(arrDaten)
End Sub


Anzeige
AW: Strings aus Stringvariable extrahieren
15.11.2015 11:48:59
Matthias
Hallo Martin,
bei mir nimmt er die MYtxt aus Zelle A1, wenn du es schon als Variable hast, kannst du den Teil evtl. rausstreichen.
Sub Ergebnisse()
Dim sMyTxt As String, vString, x As Long
With Sheets("Tabelle1")
sMyTxt = CStr(.Range("A1")) 'Variable aus Zelle A1 entnehmen
.Columns("A").Clear 'Aufräumen
.Range("A1") = sMyTxt
.Cells(3, 1) = "Extrahierte Ergebnisse:"
'in einzelne Strings splitten
'Anmerkung aus jedem Anführungszeichen im Trenn-String werden zwei Stück!
'aus "&ltA HREF=""javascript..." wird also "&ltA HREF=""""javascript..."
vString = Split(sMyTxt, _
"&ltA HREF=""""javascript:NeuFenster('/cgi-bin/bl_aufruf.pl?PHPSESSID=")
For x = 1 To UBound(vString) ' Nullter String ist nicht relevant
'für jeden String Ende wegschneiden
.Cells(x + 4, 1) = Left(vString(x), InStr(1, vString(x), "&lt/A&gt") - 1)
Next x
End With
End Sub
lg Matthias

Anzeige
AW: Strings aus Stringvariable extrahieren
16.11.2015 12:38:29
mpb
Hallo,
vielen Dank für die drei Vorschläge. Ich habe mich jetzt für den von Sepp entschieden, weil ich damit (strukturell) auch noch ein Folgeproblem lösen kann. Falls ich noch weiteren Bedarf habe, würde ich mich nochmal melden.
Gruß
Martin

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige