Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1672to1676
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

RegEx ohne Reference

RegEx ohne Reference
04.02.2019 12:47:48
Thomas
Hallo zusammen,
ich würde gerne RegEx verwenden, ohne die Reference auszuwählen.
Ich schreibe einen Code, den ich auch auf anderen PCs verwenden möchte.
Damit der Anwender dort nicht erst die Reference suchen muss, würde ich das sozusagen direkt mitliefern.
Habe bereits gelesen, dass man Referencen mit VBA auswählen kann, dafür muss man aber vorher auch eine Refernce auswählen.
Gibt es einen Weg die Referencen direkt auszuwählen ohne jedliche Eingabe des Anwenders?
Falls Nein, kann ich eine RegEx Funktion auch selbst erstellen?
meine gedanken dazu sind folgende:
i="zeichenabfolge"
for a=1 to len(i)
single_char=mid(t,i,1)
if single_char='z' then usw
next

nimmt mir aber viel zu viel rechnerleistung und die komplexität steigt ins unermäßliche.
Freue mich über Kommentare
Gruß
Thomas

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RegEx ohne Reference
04.02.2019 12:58:46
Nepumuk
Hallo Thomas,
dazu musst du keinen Verweis setzen. Das geht auch so:
Public Sub test13()
    Dim objRegEx As Object, objMatch As Object
    Dim strText As String
    Dim lngIndex As Long
    strText = "Das Produkt kostet 20,21 € zuzüglich 30,33 € Versand"
    Set objRegEx = CreateObject("VBScript.RegExp")
    With objRegEx
        .Global = True
        .IgnoreCase = True
        .Pattern = "(\d*,\d*\s€)"
        Set objMatch = .Execute(strText)
    End With
    For lngIndex = 0 To objMatch.Count - 1
        MsgBox objMatch.Item(lngIndex).Value
    Next
    Set objRegEx = Nothing
    Set objMatch = Nothing
End Sub

Gruß
Nepumuk
Anzeige
Mit Late Binding sollte es gehen
04.02.2019 12:59:19
Zwenn
Hallo Thomas,
Du kannst in VBA mit Late Binding arbeiten, wenn Du keine Verweise willst. Dann definierst Du eine Variable erstmal als allgemeines Objekt und erzeugst die Instanz erst später über CreateObject und der direkten Angabe, was Du möchtest.
Für RegEx sieht das so aus (wenn ich nicht irre)

dim lateRegEx as Object
Set lateRegEx = CreateObject("Vbscript.Regexp")

Viele Grüße,
Zwenn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige