ich habe folgendes Problem, das ich (noch) nicht zur Zufriedenheit gelöst
bekommen habe:
In einem Makro wird ein String überprüft.
Dieser kann! den Aufbau
sFileName = "Doku_001_003_00A.doc"
haben.
Ich möchte jetzt diese Zahlentripel prüfen. Dazu dachte ich an eine Prüfung
nach dem Motto
"00?" also zwei Nullen plus beliebiger Ziffer.
Suchmuster in Word wäre
00^#
Leider bekomme ich das mit folgendem Ansatz nicht hin:
strLaufNummer="004" ' Liegt als String mit 3 Stellen vor, variiert
InStr(1, sFileName, String(3 - Len(CStr(CInt(strLaufNummer))), "0") & "^#")
Liedert immer 0, da der String wohl falsch (sprich exakt) als "00^#"
ausgewertet wird.
Kann mir da jemand auf die Sprünge helfen?
--
Gruß Christian
~~~~~~~~~~~~
Antworten nur in die NG - EMails werden ungelesen gelöscht!
http://www.mvps.org/word/FindHelp/Posting.htm
http://support.microsoft.com/default.aspx?scid=fh;DE;NGNetikette
an keiner Stelle wird erwähnt, daß die Instr-Funktion auch mit Wildcards
funktioniert. Daher wirst Du wohl das erste Zeichen nach der Doppel-Null
manuell untersuchen müssen:
sFileName = "Doku_001_013_00A.doc"
strLaufNummer = "004"
Pos = InStr(1, sFileName, String(3 - Len(CStr(CInt(strLaufNummer))),
"0"))
If Pos > 0 And InStr(1, "0123456789", Mid(sFileName, Pos + 2, 1)) > 0
Then
MsgBox "Muster vorhanden!"
End If
Viele Grüße vom Niederrhein
Lutz, MVP für Word/VBA
Sub Ueberpruefung()
Dim sFilename As String
Dim strLaufNummer As String
Dim x
Dim y
Dim z
sFilename = "Doku_001_003_00A.doc"
strLaufNummer = "00A" ' Liegt als String mit 3 Stellen vor, variiert
On Error Resume Next
x = String(3 - Len(CStr(CInt(strLaufNummer))), "0")
y = x & Right(strLaufNummer, 1)
z = InStr(1, sFilename, y)
MsgBox z
End Sub
Kann man natuerlich in eine Zeile schreiben, aber ich finde es
uebersichtlicher, wenn man es auseinander fieselt ;-).
Ach ja, On Error Resume Next muss man natuerlich abfangen, damit keine
00Buchstaben-Kombinationen erlaubt sind, falls du dich mal bei
strLaufNummer vertust ;-).
Alexadnra
Gruß,
Klaus