Hier kommt es sehr auf die Semantik an. Du sagst z.B. das es "KL" am Anfang stehen hat. Das wäre allerdings bedeutungslos, wenn es mehr darum ginge, wenn es immer 2 Buchstaben sind. Weiß man nicht, wieviele Buchstaben am Anfang vorkommen können, müsste man das erst ermitteln.
Je nachdem unterscheidet sich die Herangehensweise zur Umsetzung.
Allgemein sind die folgenden Funktionen von Interesse:
Die ersten Drei geben normalerweise als Datentyp Variant zurück. Die Variante mit dem $-Zeichen gibt jedoch String zurück und sollte man bevorzugen (dadurch entfällt eine automatisch Konvertierung).
- Left(), Left$()
- Mid(), Mid$()
- Right(), Right$()
- InStr()
- InStrReverse()
Der simpelste Weg wäre somit:
Dim strSource As String
Dim strReplaced As String
strSource = "KL1244578"
strReplaced = Left$(strSource, 2) & "5467213"
Call MsgBox(strReplaced)
Da im Beispiel die gesamte Zeichenlänge gleich bleibt, wäre sogar noch die speichereffizientere Variante möglich.
Dim strText As String
strText = "KL1244578"
Mid$(strText, 3) = "5467213" ' hier wird ab dem 3. Zeichen ersetzt
Call MsgBox(strText)
Das Besondere hier ist, dass Mid auf der linken Seite steht und damit schreibt/ersetzt.
Normalerweise steht es wie die anderen Funktionen immer auf der rechten Seite und ist damit nur lesend.
Grüße
PS: Der Code ist ungetestet.
|