Function fixaStr(Str)
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "\(.*\)(.*)"
Set Matches = objRegExp.Execute(Str)
fixaStr = Matches(0).Submatches(0) & "<br>"
End Function
Function fixaStr(Str)
If Left(Str,1) = "(" Then
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "\(.*\)(.*)"
Set Matches = objRegExp.Execute(Str)
fixaStr = Matches(0).Submatches(0) & "<br>"
Else
fixaStr = Str
End If
End Function
Om du ändrar If Left(Str,1) = "(" till If InStr(Str,"(")) > 0 då körs koden oavsett var parantesen finns.
Borde detta inte kunna fixas i mönstret?
Fast, det är väl inte mönstret som är fel, det är väl referensen till något som inte finns?
For Each Match in Matches
fixaStr = Matches(0).Submatches(0) & "<br>"
Next
Eller?
Dock, för att vara säker på att din funktion fungerar, måste du veta vad som ska tas bort, dvs vilken data du får.
Står det Stockholm[3] eller /33/Stockholm kommer det inte att fungera.
Jag har stött på ett litet problem, om strängen innehåller ett "enter" slag.. dvs radbryt så skriver den bara ut första raden.
Om jag skriver in:
(1)Test test test
asdasdsd
I ett formulär och sparar det i access och skriver ut det med den där funktionen så kommer bara "Test test test" att synas.. någon som har en lösning på det?