kleines Problemchen. Eigentlich funktioniert folgendes.
Ich filtere einen String aus einer Formel. Dieser heisst dann z.B. "Week09".
Aus diesem String filtere ich dann die Zahl, um diese zu aendern.
Mit der hier gefundenen Funktion wird mir aber die fuehrende 0 nicht mit angezeigt.
Was muss ich aendern?
Hier mein code:
Sub a()
Dim strWeek As String, strWeeknew As String, strFormel As String
Dim pos1 As Long, pos2 As Long, pos3 As Long
Sheet3.Range("Y51").Activate
strFormel = ActiveCell.Formula
'MsgBox strFormel
pos1 = InStr(strFormel, "_") 'Position erster Unterstrich
pos2 = InStr(pos1 + 1, strFormel, "_") 'Position zweiter Unterstrich und Wort Week
pos3 = InStr(pos2 + 1, strFormel, "_") 'Position dritter Unterstrich
strWeek = Mid(strFormel, pos2 + 1, pos3 - pos2 - 1)
strWeeknew = ExtractNumber(strWeek)
End Sub
Private Function ExtractNumber(str As String) As Long
Dim i As Byte, ii As Byte
For i = 1 To Len(str)
If IsNumeric(Mid(str, i, 1)) Then Exit For
Next i
For ii = i To Len(str)
If Not IsNumeric(Mid(str, ii, 1)) Then Exit For
Next ii
ExtractNumber = Mid(str, i, Len(str) - (ii - i))
End Function
Danke und Gruss Torsten