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()'
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.