Substring jest jedną z najpopularniejszych funkcji w każdym języku programowania. Ułatwia ona zadania podczas pracy z ciągami znaków. Jak sama nazwa wskazuje, funkcja podciągu dzieli ciąg znaków na różne części na podstawie określonych kryteriów.
Istnieje wiele funkcji VBA podciągu. W sytuacjach praktycznych, te funkcje podciągu mogą być całkiem przydatne w wyodrębnianiu części łańcucha.
Dzisiaj w tym poście zamierzam wyjaśnić wszystkie funkcje podciągu VBA, które można wykorzystać w makrach Excela:
Spis treści
Funkcja podciągu LEWY:
Funkcja LEWY w Excelu VBA służy do pobierania określonej liczby znaków od początku ciągu znaków. Składnia funkcji LEWY jest następująca:
Lewy (tekst_łańcuch, długość)
- Tutaj „tekst_łańcuch” odnosi się do łańcucha wejściowego, który ma zostać oddzielony.
- A „długość” odnosi się do liczby znaków, które mają zostać wyodrębnione.
Przykłady:
Left ("Exceltrick", 5) 'daje wynik "Excel"
Left ("SomeText", 4) 'daje wynik "Some"
Uwaga: Zamiast używać hardcoded string w pierwszym argumencie możesz również pobrać 'text_string’ ze swojego arkusza Excela jak ActiveSheet.Range(„A1”).
Funkcja Right Substring:
Funkcja PRAWY w Excelu VBA jest dokładnie odwrotna do funkcji LEWY. Zwraca ona określoną liczbę znaków od końca łańcucha tekstowego. Składnia funkcji PRAWO jest następująca:
Prawo(tekst_łańcucha, długość)
- Tutaj „tekst_łańcucha” odnosi się do łańcucha wejściowego, który ma zostać oddzielony.
- A „długość” odnosi się do liczby znaków, które mają zostać wyodrębnione, ale ekstrakcja rozpoczyna się od prawej strony.
Przykład:
Prawo ("Exceltrick", 5) 'daje wynik "trick"
Prawo ("SomeText", 4) 'daje wynik "Tekst"
Uwaga: Zamiast używać hardcoded string w pierwszym argumencie możesz również pobrać 'text_string’ z arkusza Excela jako ActiveSheet.Range(„A1”).
Funkcja MID Substring:
MID jest znacznie lepszą funkcją od dwóch pierwszych, daje możliwość określenia pozycji początkowej i końcowej wyodrębnianego ciągu znaków. Składnia funkcji MID VBA Substring jest następująca:
Mid(text_string, start_position, Length)
- Tutaj 'text_string’ odnosi się do łańcucha wejściowego, który ma zostać rozdzielony.
- ’start_position’ odnosi się do pozycji numerycznej, od której ma się rozpocząć ekstrakcja.
- A 'length’ odnosi się do liczby znaków, które mają zostać wyodrębnione.
Przykład:
MID ("Exceltrick", 2,4) 'daje wynik "celt"
MID ("SomeText", 4,4) 'daje wynik "Text"
Uwaga: Zamiast używać hardcoded string w pierwszym argumencie możesz również pobrać 'text_string’ z arkusza Excela jako ActiveSheet.Range(„A1”).
Funkcja SPLIT Substring:
Funkcja SPLIT jest kolejną funkcją VBA, która może być używana do podciągania lub dzielenia ciągu znaków. Funkcja SPLIT może być bardzo przydatna, gdy dzielisz ciąg tekstowy na więcej niż jedną część w oparciu o ogranicznik. Składnia funkcji split jest następująca:
Split (text_string, Delimiter, limit, Compare)
- Tutaj, 'text_string’ odnosi się do łańcucha wejściowego, który ma być rozdzielony.
- ’Delimiter’ odnosi się do znaku ogranicznika, który dzieli łańcuch na części. Jest to argument opcjonalny, jeśli jest pusty, to domyślnym separatorem jest znak spacji ” „.
- ’limit’ odnosi się do maksymalnej liczby części podłańcucha, na które łańcuch powinien zostać podzielony. Jest to również opcjonalny argument, domyślną wartością jest (-1), co oznacza, że podłańcuch powinien wystąpić w każdej pozycji, w której napotkano ogranicznik.
- ’compare’ jest opcjonalną wartością liczbową, która określa porównanie do użycia podczas oceny podłańcuchów.
Przykład:
Na przykład masz ciąg tekstowy jako „To jest ciąg tekstowy” i teraz musisz rozbić ten ciąg na pojedyncze słowa, więc w tym przypadku użyjesz spacji ” ” jako ogranicznika. Funkcja dzielenia będzie używana jako:
Split ("To jest ciąg tekstowy", " ")
Wynikiem tej funkcji dzielenia jest tablica słów: „This” „is” „a” „text” „string”.
Recommended Reading: VBA Split Function
Przykład VBA Substring Macro:
Poniżej utworzyłem makro, które ilustruje wszystkie techniki podciągania dostępne w programowaniu VBA. Jest to proste i niewymagające wyjaśnień makro, w którym po prostu podzieliłem łańcuch tekstowy za pomocą 4 metod, które opisałem powyżej.
Poniżej znajduje się kod, którego użyłem dla tego makra:
Sub BreakStrings()
'Funkcja Left
a = Left("Excel Trick Text", 5)
'Funkcja Right
b = Right("Excel Trick Text", 11)
'Funkcja Mid
c = Mid("Excel Trick Text", 1, 11)
'Split function
d = Split("Excel Trick Text", " ")
For Each wrd In d
strg = strg & wrd & ","
Next
'Wyświetlanie wyników w mesage box
MsgBox "Left: " & a & vbNewLine & "Right: " & b & vbNewLine & "Mid: " & c & vbNewLine & "Split: " & strg
End Sub
Więc, to było wszystko na temat funkcji VBA substring. Podziel się swoją opinią związaną z tematem.