Alle Fundstellen in einem String in einem neuen String ausgeben
#21
@Schülerin
Das Problem mit den sogenannten Zahleninseln im String ist die Möglichkeit des Auftretens von führenden Nullen. Daher ist das Herzstück dieses Codes auch folgende Formel:

Code:
'Ermittelt die nächste Reihe von Zahlen in einem String, einschließlich einer eventuell vorhandenen führenden Null:
Mid(Val("1" & Mid(strString, intA)), 2)

Somit wäre ein kürzerer und besserer Weg die Zahleninseln in einem String zu finden:

Code:
Sub Positionen_aller_Zahleninseln_in_einem_String()
Dim strString As String, strSuch As String, strErgebnis As String, intA As Integer
strString = "Nummer: 0845, Reihe: 0011, Bereich: 0005" 'Beispielsatz

For intA = 1 To Len(strString)
If IsNumeric(Mid(strString, intA, 1)) Then
strErgebnis = strErgebnis & ", Position: " & intA & " Zahl: " & Mid(Val("1" & Mid(strString, intA)), 2)
intA = intA + Len(Mid(Val("1" & Mid(strString, intA)), 2))
End If
Next
Debug.Print Mid(strErgebnis, 2, Len(strErgebnis))

End Sub
Top
#22
Hallo, Schülerin;
vielleicht reicht Dir ja auch dieses Fertigprodukt in Form einer UDF.

Die UDF ist allerdings auf EinzelZeichen ausgerichtet, würde also kein ganzes Wort finden, sondern alle seine Buchstaben im Gesamttext. Darunter ist dann auch das Wort. Zahleninseln in normaler Schreibweise sind auch kein Problem (2 Varianten: nur Ziffern bzw Zahlen inkl Dezimaltrenner und Vorzeichen).
Den Link hatte ich Dir aber letztens schon verehrt, worauf Du nicht mehr reagiert hattest (String-Addition).
Gruß, Castor
Top
#23
@Castor
Hallo, habe mir gerade deinen Link zur UDF angschaut und sehe nicht was diese UDF mit dem Thema zu tun hat.
Bitte schreib doch mal eine Sub Main in der die Wirkungsweise dieser UDF anschaulich dargestellt wird.
Top


Gehe zu:


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