Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

suchen mit Regexp

suchen mit Regexp
19.08.2007 14:05:54
Peter
Hallo Excel Experten,
ich suche in einem Text (z. B. in den Zellen der Spalte A) mittels Regexp nach einer Zeichenfolge Ziffer großes X Ziffer z. B. 3X4)
mit Pattern "\d\X\d" kein Problem.
Ich möchte aber gar nicht unbedingt die Zeichenfolge selbst, sondern deren Position in der jeweiligen Zelle wissen.
Muss ich das mit


For intIndex = 0 To objMatch.Count - 1
      intPosit = InStr(Range("A" & lngZeile).Value, objMatch(intIndex))
      If intPosit > 0 Then ...
      End If
Next intIndex 


das heißt mit InStr machen oder gibt es eine elegantere Lösung direkt die gefundene Position zu erhalten?
Für einen guten Tip, schon einmal vielen Dank im voraus.
Gruß Peter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen mit Regexp
19.08.2007 14:20:00
fcs
Hallo Pete,
ich kenne "Regexp" nicht, welche Möglichkeiten da bestehen.
Unter Excel-VBA gehts kaum eleganter (anders?). Außer, dass du "Range("A" & lngZeile)" durch "Cells(lngZeile,1)" ersetzt. Dann läuft der Code noch etwas zügiger.
Gruß
Franz

AW: suchen mit Regexp
19.08.2007 14:42:00
Peter
Hallo Franz,
da du schreibst "ich kenne "Regexp" nicht, welche Möglichkeiten da bestehen."
hilft mir deine Antwort leider recht wenig.
Warum Range("A" & lngZeile) langsamer als Cells(1, lngZeile) sein soll, erschließt sich mir auch nicht unbedingt.
Ich stelle meine Frage also wieder auf offen, in der Hoffnung auf eine Regexp-Kenner als Antworter.
Gruß Peter

Anzeige
AW: suchen mit Regexp
19.08.2007 18:51:00
Peter
Hallo Ramses,
danke für deine Info.
ich suche unbekannte Zeichenfolgen von 0X0 bis 9X9 und alle Varianten dazwischen.
Gruß Peter

Anzeige
AW: suchen mit Regexp
ransi
HAllo Peter
Ruf mal den Script-Editor auf.
In dessen Hilfe wird Regexp ansatzweise erklärt.
Dieses Beispiel habe ich daraus kopiert und leicht angepasst:
Option Explicit

Public Sub test()
MsgBox (RegAusdrTest("\d\X\d", "12X2abc34X1abX1"))
End Sub

Function RegAusdrTest(Suchmuster, Zeichenfolge)
Dim regAusdr
Dim Uebereinstimmung
Dim Uebereinstimmungen
Dim Rueckgabe
Set regAusdr = CreateObject("Vbscript.regexp") ' Erstellt einen regulären Ausdruck.
regAusdr.Pattern = Suchmuster ' Setzt das Muster.
regAusdr.IgnoreCase = True ' Ignoriert die Schreibweise.
regAusdr.Global = True ' Legt globales Anwenden fest.
Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge) ' Führt die Suche aus.
For Each Uebereinstimmung In Uebereinstimmungen ' Durchläuft die Auflistung der Übereinstimmungen.
    Rueckgabe = Rueckgabe & "Entsprechung gefunden bei "
    Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
    Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCrLf
Next
RegAusdrTest = Rueckgabe
End Function


ransi

Anzeige
AW: suchen mit Regexp
19.08.2007 18:53:36
Peter
Hallo ransi,
danke für deine Info, sie gibt mir genau das, was ich möchte, nur bisher nicht gefunden hatte, weil Doku von Regexp und VBA bzw. Excel mager ist.
Gruß Peter

AW: suchen mit Regexp
19.08.2007 15:36:00
ingUR
Hallo, Peter,
Dein Match-Objekt solte die Startposition mit .FirstIndex preisgeben.

For each objm in objMatch
debug.print objm.firstIndex
next


Gruß,
Uwe

AW: @ingUR
19.08.2007 16:45:00
Gerd
Hallo Uwe,
FirstIndex
Ab welcher Exelversion ist diese Eigenschaft oder Methode vorhanden ?
Gruß Gerd

AW: @ingUR
19.08.2007 17:50:00
ingUR
Hallo, Gerd,
über die Historie der Objektmethode habe ich keine Information. Selber kann ich sie in MS-VB 6.0 (VBA für EXCEL 2000) einsetzen.
Gruß,
Uwe
P.S. als Ergänzung zur ersten knappen Antwort: Um Mehrfachfunde im Objekt objMatch zu sammeln, muß die Eigenschaft Global des RegEx-Objekt auf true gesetzt werden.

Anzeige
AW: suchen mit Regexp
19.08.2007 18:56:05
Peter
Hallo Uwe,
genau die Info fehlte mir bisher, denn ich habe keine Doku zu Regexp und VBA (wohl aber Perl und andere Sprachen) finden können.
Danke für deine Hilfe.
Gruß Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige