Excel ma już funkcję arkusza TRIM, której można użyć, aby pozbyć się początkowych, końcowych i dodatkowych spacji między słowami/ciągami.
Istnieje również funkcja TRIM w VBA (i robi dokładnie to samo - usuwa dodatkowe spacje).
Dlaczego potrzebujemy funkcji TRIM również w VBA?
Uczciwe pytanie!
Chociaż możesz pracować z wbudowaną funkcją TRIM w arkuszach programu Excel, aby pozbyć się spacji. w niektórych przypadkach może być konieczne wykonanie tego za pomocą VBA.
Może to być część większego kodu.
Składnia funkcji VBA TRIM
PRZYCINANIE(ciąg)
„Ciąg” to argument, który może być ciągiem tekstowym lub zmienną przechowującą ciąg tekstowy.
Nauczmy się korzystać z funkcji VBA TRIM na kilku przykładach.
Przykład 1 - Wyświetlanie wyniku w oknie wiadomości
Załóżmy, że masz następujący tekst w komórce A1
Zauważ, że przed i po zdaniu są spacje.
Poniższy kod przyjmie to zdanie i pokaże wynik po przycięciu dodatkowych spacji
Sub TrimExample1() MsgBox Trim(Zakres("A1")) Koniec SubPodczas korzystania z funkcji TRIM w VBA należy pamiętać o jednej ważnej rzeczy - usunie ona tylko spacje wiodące i końcowe. Nie usunie dodatkowych spacji między słowami (co robi wbudowana funkcja TRIM w arkuszu).
Załóżmy na przykład, że w komórce A1 znajduje się następujący tekst (z dodatkowymi spacjami między słowami):
Jeśli użyję powyższego kodu VBA, wyświetli się okno komunikatu, jak pokazano poniżej:
Jak widać w wyniku okna komunikatu, dodatkowe spacje między słowami nie są usuwane przez funkcję VBA TRIM.
Więc jaka jest alternatywa?
Jeśli chcesz usunąć początkowe, końcowe i podwójne spacje między słowami, lepiej użyć następującego kodu:
Sub TrimExample1() MsgBox WorksheetFunction.Trim(Range("A1")) End Sub
Powyższy kod używa funkcji TRIM arkusza roboczego (zamiast używania funkcji TRIM w VBA).
Uwaga: funkcja VBA Trim nie usuwa znaków innych niż białe - takich jak znaki nowej linii (vbNewLine, vbCrLf) itp.
Przykład 2 - Szybkie usuwanie wiodących i końcowych spacji z zakresu komórek
Załóżmy, że masz zestaw danych, jak pokazano poniżej, w którym znajdują się spacje wiodące i końcowe:
Możesz użyć poniższego kodu, aby natychmiast wyczyścić te dane i usunąć wszystkie spacje wiodące i końcowe:
Sub TrimExample1() Dim Rng As Range Set Rng = Zaznaczenie dla każdej komórki w Rng Cell.Value = Trim(Cell) Następna komórka End Sub
Powyższy kod przechodzi przez wszystkie komórki w zaznaczeniu i usuwa spacje wiodące i końcowe.
Możesz również polubić następujące samouczki Excel / VBA:
- 10 sposobów na czyszczenie danych w programie Excel.
- Funkcja podziału Excela VBA.
- Funkcja Excel VBA InStr.
- Funkcja VBA LCase.
- Funkcja VBA UCase.
- Tworzenie funkcji zdefiniowanej przez użytkownika (UDF) w Excel VBA.