Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchfunktion

Suchfunktion
02.07.2008 12:58:41
Armin
Hallo,
ich habe folgendes Problem.
Ich suche mit nachfolgendem Makro nach einem Suchmuster innerhalb einer Excel-Datei. Soweit funktioniert das ganze auch. Nun möchet ich aber den genauen Wert des Suchmusters extrahieren und nicht den gesamten Zellinhalt.
Hier das Makro:

Sub Test_Suchmuster()
Set ws1 = ThisWorkbook.Sheets(1)
For i = 1 To 3
Set suche = ws1.Cells(i, 1).Find("?.?.?/?-?")
If Not suche Is Nothing Then
MsgBox suche.Find("?.?.?/?-?")
End If
Next i
End Sub


Wenn z. B. der Zellinhalt wie folgt lautet: "Wert 1.234.567/1-22 Artikel" dann findet das Makro korrekt die Zelle liefert aber als Inhalt den gesamten Zellinhalt zurück.
Ich bräuchte allerdings nur den Wert "1.234.567/1-22" aus der Zelle, der eben dem Suchmuster entspricht.
Gibt es dafür eine Lösung?
Vielen Dank
Armin

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion
02.07.2008 13:12:00
Matthias
Hallo Armin,
ich weiß nicht, ob's was schnelleres gibt, versuch es mit folgender UDF:

Function HoleMuster(s As String, sm As String) As String
Dim i As Integer, found As Boolean
For i = 1 To (Len(s) - Len(sm)) + 1
If Mid(s, i, Len(sm)) Like sm Then found = True: Exit For
Next i
If found Then
HoleMuster = Mid(s, i, Len(sm))
End If
End Function


Teste es hiermit:


Sub test()
Dim s$, sm$
s = "Wert 1.234.567/1-22 Artikel"
sm = "?.?.?/?-?"
MsgBox HoleMuster(s, sm)
End Sub


Gruß Matthias

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige