VBA SubString - Jak wyodrębnić podciąg przy użyciu funkcji VBA?

Spisie treści

Excel VBA SubString

SubString jest częścią ciągu lub jego części, lub też jego znak nazywa się „SubString”. Istnieją trzy typy funkcji podciągów w VBA LEFT, RIGHT i MID, które są podobne do podciągów arkusza w programie Excel.

Łańcuch to nic innego jak seria znaków, a znaki mogą być alfabetami, liczbami, znakami specjalnymi, a także łączyć je wszystkie.

Często w programie Excel, gdy pracujemy z danymi, które są ciągiem znaków, potrzebujemy pobrać tylko część ciągu, aby ułatwić nam zadanie. Możemy nie potrzebować pełnego ciągu, ale potrzebujemy tylko jego części do naszego użytku. Na przykład, jeśli masz imię „Sachin Tendulkar”, możesz potrzebować tylko jego pierwszej części, tj. Tylko „Sachin”. Nazywa się to jako SubString ciągu w Excel VBA. Aby poradzić sobie z tymi ciągami, mamy wbudowane funkcje w ramach funkcji TEKST w kategorii Excel.

W tym artykule omówimy, jak uzyskać podciąg z pełnego ciągu w VBA.

Jak korzystać z funkcji SubString w VBA?

Aby wyodrębnić podciąg z łańcucha, mamy kilka wbudowanych funkcji tekstowych, a niektóre z ważnych funkcji to LEFT, RIGHT, INSTR i MID w programie Excel. Funkcja Instr będzie służyć jako funkcja pomocnicza dla pozostałych trzech funkcji.

Zobaczymy, jak wykorzystać te funkcje do praktycznego wyodrębnienia podciągów. Przeczytaj poniższe przykłady, aby je zrozumieć.

Przykład 1 - użycie funkcji lewej

Jeśli masz pełne imię i nazwisko „Sachin Tendulkar” i chcesz wyodrębnić tylko imię jako podłańcuch, użyj poniższego kodu, aby uzyskać to samo.

Krok 1: Utwórz nazwę makra i zdefiniuj dwie zmienne jako ciąg.

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String End Sub

Krok 2: Teraz przypisz nazwę „Sachin Tendulkar” do zmiennej FullName .

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" End Sub

Krok 3: Teraz zmienna FullName przechowuje wartość „Sachin Tendulkar”. Teraz musimy wyodrębnić podciąg VBA programu Excel dla imienia z pełnej nazwy. Zatem przypisz wartość zmiennej FirstName za pomocą funkcji LEFT.

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (End Sub

Krok 4: Pierwszy argument funkcji VBA LEFT to String; że to, co jest pełną wartość lub pełny ciąg. W tym przykładzie nasza pełna wartość lub ciąg znaków to „Sachin Tendulkar”, który jest przypisany do zmiennej FullName.

Więc podaj zmienną FullName jako argument.

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left End Sub

Krok 5: Kolejnym argumentem jest to, ile znaków potrzebujemy z podanego przez nas ciągu, więc w tym przypadku potrzebujemy imienia „ Sachin ”, więc potrzebujemy 6 znaków z lewej strony.

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub

Krok 6: Teraz pokaż wynik w oknie komunikatu w VBA.

Kod:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) MsgBox FirstName End Sub

Krok 7: Uruchom makro, zobacz imię jako podciąg w oknie komunikatu.

Przykład # 2 - Pobierz SubString z prawej strony

Tak jak w podobny sposób wyodrębniliśmy podciąg z lewej strony, możemy również wyodrębnić z prawej strony. Weźmy za przykład tę samą nazwę.

Krok 1: Zdefiniuj dwie zmienne jako ciąg.

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String End Sub

Krok 2: Jak zwykle przypisz wartość zmiennej FullName jako „Sachin Tendulkar”.

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" End Sub

Krok 3: Teraz dla zmiennej LastName przypisz wartość za pomocą funkcji RIGHT programu Excel.

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (End Sub

Krok 4: Ciąg to nasza FullName, więc podaj zmienną.

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, End Sub

Krok 5: Długość to liczba znaków, których potrzebujemy z prawej strony. Potrzebujemy 9 znaków po prawej stronie.

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) End Sub

Krok 6: Pokaż tę wartość w oknie komunikatu .

Kod:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) MsgBox LastName End Sub

Krok 7: Uruchom makro. W oknie komunikatu zobaczymy nazwisko.

Przykład # 3 - użycie funkcji instr

W powyższych przykładach mieliśmy tylko jedną nazwę i bezpośrednio podaliśmy, ile znaków potrzebujemy z lewej i prawej strony. Ale w przypadku wielu imion, znaki imienia i nazwiska nie są takie same, będą się różnić w zależności od nazwy. W takich przypadkach nie możemy bezpośrednio podać liczby znaków, więc możemy skorzystać z funkcji Instr.

Funkcja Instr zwróci podaną pozycję znaku w ciągu. Na przykład spójrz na poniższy kod.

Kod:

Sub SubString_Example3 () Dim Position As String Position = InStr (1, "Sachin", "a") MsgBox Position End Sub

InStr (1, „Sachin”, „a”), to zidentyfikuje pozycję litery „a” jako pierwszy występ w ciągu „Sachin”. W tym przypadku litera „a” jest na drugiej pozycji. W rezultacie otrzymamy 2 w oknie komunikatu.

W ten sposób możemy użyć funkcji Instr, aby znaleźć znak spacji między imieniem a nazwiskiem.

Na przykład spójrz na poniższą nazwę, którą mam w arkuszu Excela.

Używając funkcji LEFT, RIGHT i Instr , możemy wyodrębnić podciągi. Poniżej znajduje się kod do wyodrębnienia imienia.

Kod:

Sub FirstName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1) .End (xIUp) .Row For K = 2 To LR Cells (K, 2) .Value = Left (Cells (K, 1) .Value, InStr (1, Cells (K, 1) .Value, "") - 1) Next K End Sub

Uruchom makro i zobacz imię jako podciąg w oknie komunikatu.

Użyj poniższego kodu, aby wyodrębnić nazwisko jako podciąg.

Kod:

Sub LastName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1) .End (xIUp) .Row For K = 2 To LR Cells (K, 3) .Value = Right (Cells (K, 1) .Value, Len (Cells (K, 1)) - InStr (1, Cells (K, 1) .Value, "")) Next K End Sub

Uruchom makro, a zobaczymy nazwisko w oknie komunikatu.

Przypisałem przycisk makra do arkusza, pobieram skoroszyt i używam ich.

Interesujące artykuły...