28. januar 2010 - 23:56Der er
8 kommentarer og 1 løsning
Replace() og Trim() er ikke løsningen på blanke felter
jeg har en varetekst, der hedder noget i denne stil: "Skraber 44 UnikA"
Jeg har forsøgt at bruge Trim() til at fjerne disse overflødige mellemrum, men den trimmer kun foran og bagved tekst-strengen. Og bruger jeg Replace([Varetekst1];" ";" "), så sker erstatningen kun én gang.
I bund og grund, så leder jeg efter en funktion ligesom i Excel med '=fjern.overflødige.blanke()'
Tak for buddet, men det er ikke løsningen. Resultatet bliver til "Skraber44UnikA" :-(.
Det er derfor jeg benytter: Replace([Varetekst1];" ";" ")
Og ikke: Replace([Varetekst1];" ";" "),
Det er vel nødvendigt at køre loop x30 på Replace([Varetekst1];" ";" ") for at nå ønskede resultat. Måske lave første Replace med 10 mellemrum til 1 mellemrum, så 5 mellemrum til 1 mellemrum, så 2 mellemrum til 1....
Rolig nu. Du får lige en rutine, der klarer det hele:
Function Replace2(v As Variant) As String Dim p As Integer Dim s As String
If IsNull(v) Then Replace2 = "" Else s = v p = InStr(1, s, " ") Do Until p = 0 s = Left(s, p - 1) & Mid(s, p + 1) p = InStr(1, s, " ") Loop Replace2 = s End If End Function
Smid den ind i et valgfrit modul og kald den med f.eks. Replace2([Varetekst1])
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.