Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mittels regulären Ausdrücken Punkt nach einer Zahl ersetzen
#1
Hallo Leute, 

ich bräuchte nochmal dringend weitere Hilfe. Ich möchte per VBA Programmierung das bei Zahlen von 0 bis 9 gefolgt von einem Punkt
der Punkt hinter der Zahl durch einen Stern * ersetzt wird. Also aus 1. wird 1*  und aus 2. wird 2* usw.

Mit allen Punkten die nicht direkt hinter einer Zahl stehen soll nichts passieren.
Ich denke man kann so etwas sehr effektiv mittels regulären Ausdrücken programmieren. Nur wie?
Für eure Lösungsvorschläge wäre ich sehr dankbar und bedanke mich schon mal hier.
Antworten Top
#2
Hallo,

könntest Du Dich erst einmal zu Deinem vorherigen Problem äußern? Da hättest Du auch weitermachen können!
Wenn Du schon weißt, dass man das mit regulären Ausdrücken programmieren kann, warum suchst Du nicht mal danach?

z.B. hier:

http://regexp-evaluator.de/tutorial/
http://de.wikipedia.org/wiki/Regul%C3%A4...es_Zeichen
http://www.herber.de/forum/archiv/896to9...egexp.html
Gruß

Edgar

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

meinst Du so?

Code:
Sub prcTestRegex()
   Dim re As Object, reMat As Object
   Dim lngC As Long
  
   On Error Resume Next
   Set re = CreateObject("vbscript.regexp")
   re.Pattern = "(\d)*(\.)"
   re.Global = True
   lngC = 1
   While Cells(lngC, 1) <> ""
      Set reMat = re.Execute(Cells(lngC, 1))
      If Not IsEmpty(reMat(0).submatches(0)) Then
         Cells(lngC, 2) = Replace(Cells(lngC, 1), ".", "*")
      Else
         Cells(lngC, 2) = Cells(lngC, 1)
      End If
      lngC = lngC + 1
   Wend
   On Error GoTo 0
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#4
Hi Stefan,

habe deinen Code gerade ausprobiert. Funktioniert super. Genau das habe ich gesucht.
Vielen Dank für deine Hilfe.
Antworten Top


Gehe zu:


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