Muster in einem String ersetzen
#1
Hallo,

habe folgendes Problem bzw. Frage.
Ich möchte in dem String, zString, alle Zeichen rechts vom runden Klammerzeichen ) und links vor dem eckigen Klammerzeichen [ ersetzen.
Dazu habe ich mal ein kleines funktionierendes Programm geschrieben. Ich frage mich aber, ob man das nicht auch viel leichter hinbekommt.
Da bei euch im Forum hier einige VBA Virtuosen sind, werft doch bitte mal einen Blick drauf. Vielleicht geht so etwas viel besser.
Oder vielleicht habe ich ja auch selbst den bestmöglichen Code diesbezüglich geschrieben. (Ha, ha, ha - Ironie aus!)
Danke im voraus.



Code:
Sub Muster_ersetzen()
Dim zString$, zNeu$, vbX$
zString = "55.) Hier steht dann irgendwas.[15[1"
vbX = String(Len(Split(Split(zString, ".)")(1), "[")(0)), " ")
zNeu = Replace(zString, Split(Split(zString, ".)")(1), "[")(0), vbX)
End Sub
Top
#2
Hallo,

mit einer Formel:


Code:
=TEIL(D4;SUCHEN(")";D4)+1;SUCHEN("[";D4)-SUCHEN(")";D4)-1)
Mit VBA:

Code:
Sub test()
Cells(4, 5) = Mid(Cells(4, 4), InStr(Cells(4, 4), ")") + 1, InStr(Cells(4, 4), "[") - InStr(Cells(4, 4), ")") - 1)
End Sub
oder:

Code:
Sub test2()
Dim zString$
zString = "55.) Hier steht dann irgendwas.[15[1"
zString = Mid(zString, InStr(zString, ")") + 1, InStr(zString, "[") - InStr(zString, ")") - 1)
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#3
Hallo,

eine Alternative mit RefEx


Code:
zString = "55.) Hier steht dann irgendwas.[15[1"

.Pattern = "\)(.+)["

und dann das SubMatch auslesen.

mfg
Top
#4
@Fennek
bitte führe dies nochmal etwas weiter aus. Die VBA Programmierung mit einem Pattern bekomme ich ansonsten nicht hin.
Hier bräuchte ich schon mal eine Schritt für Schritt Anleitung.
Danke.


Zusammenfassung bisher:

Code:
Sub Muster_ersetzen()
'Eigener Code
Dim zString$, zNeu$, vbX$, strText$, zText$
zString = "55.) Hier steht dann irgendwas.[15[1"
vbX = String(Len(Split(Split(zString, ".)")(1), "[")(0)), " ")
zNeu = Replace(zString, Split(Split(zString, ".)")(1), "[")(0), vbX)

'Code von Edgar: / anders aber nicht kürzer
zText = Mid(zString, InStr(zString, ")") + 1, InStr(zString, "[") - InStr(zString, ")") - 1)
zText = Replace(zString, zText, String(Len(zText), " "))

End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste