Discussion:
[Excel] Co z tym TRIM ?
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Beer
2004-07-15 09:33:00 UTC
Permalink
Co robię nie tak?

Chciałem pozbyć się zbędnych spacji. Więc chyba funkcja TRIM, prawda?

Jeśli korzystam z excelowej "usuń.zbędne.odstępy" to OK.
Ale dlaczego nie działa coś takiego?
Mamy np. w komórce tekst:
"
Jakiś tekst, zawinięt,
ze spacjami <- tam są i tu
i coś jeszcze . "

i próbuję:

Dim a() As String
b = ActiveCell.Text
a = Split(Trim(b))

For i = 0 To UBound(a)
MsgBox a(i)
Next

Czy nie powinno to poucinać wielokrotnych spacji?
Jak się ich pozbyć?
Pozdrawiam
Tajan
2004-07-15 09:59:50 UTC
Permalink
Witam!
Co robiê nie tak?
Chcia³em pozbyæ siê zbêdnych spacji. Wiêc chyba funkcja TRIM, prawda?
Je¶li korzystam z excelowej "usuñ.zbêdne.odstêpy" to OK.
Ale dlaczego nie dzia³a co¶ takiego?
"
Jaki¶ tekst, zawiniêt,
ze spacjami <- tam s± i tu
i co¶ jeszcze . "
Dim a() As String
b = ActiveCell.Text
a = Split(Trim(b))
For i = 0 To UBound(a)
MsgBox a(i)
Next
Czy nie powinno to poucinaæ wielokrotnych spacji?
Jak siê ich pozbyæ?
Trim wycina tylko spacje poczatkowe i koncowe.
W twoim przypadku mozna uzyc takiego kodu:

b = Trim(b) 'wycinamy spacje poczatkowe i koncowe

Do While InStr(b, " ") > 0 'szukamy 2 spacji
b = Replace(b, " ", " ") ' 2 spacje zamieniamy na 1
Loop
a=Split(b)

Powodzenia
Tajan
Beer
2004-07-15 10:41:31 UTC
Permalink
Post by Tajan
Trim wycina tylko spacje poczatkowe i koncowe.
Czyli rejestrator makr Excela łże? ;)
Bo jak nagrywałem makro (dla sprawdzenia) z funkcją
"Usuń.zbędne.odstępy" to zadziałało, a w kodzie pojawiła
się funkcja "trim". I w sumie jak wywoła się nagrane makro,
to ono też działa.
Post by Tajan
b = Trim(b) 'wycinamy spacje poczatkowe i koncowe
Do While InStr(b, " ") > 0 'szukamy 2 spacji
b = Replace(b, " ", " ") ' 2 spacje zamieniamy na 1
Loop
a=Split(b)
Powodzenia
Dziękuję!
Już kolejny raz :)

Pozdrawiam
Beer
2004-07-15 10:43:03 UTC
Permalink
<....>
Post by Tajan
b = Trim(b) 'wycinamy spacje poczatkowe i koncowe
Do While InStr(b, " ") > 0 'szukamy 2 spacji
b = Replace(b, " ", " ") ' 2 spacje zamieniamy na 1
Loop
a=Split(b)
O qrczę..
a jak zamiast "trim" użyję "worksheetfunction.trim" to działa OK
:-D
Chyba ;)


Pozdrawiam jeszcze raz
Tajan
2004-07-15 11:21:47 UTC
Permalink
Post by Beer
<....>
Post by Tajan
b = Trim(b) 'wycinamy spacje poczatkowe i koncowe
Do While InStr(b, " ") > 0 'szukamy 2 spacji
b = Replace(b, " ", " ") ' 2 spacje zamieniamy na 1
Loop
a=Split(b)
O qrczê..
a jak zamiast "trim" u¿yjê "worksheetfunction.trim" to dzia³a OK
:-D
Chyba ;)
Pozdrawiam jeszcze raz
Trim w VB a worksheetfunction.trim - sa to calkowicie rozne funkcje !
Worksheetfunction.trim to jest wlanie funkcja arkusza "usuñ.zbêdne.odstêpy".
Oczywiscie mozesz ja wykorzystac.

Tajan

Loading...