VBA SubString

Excel VBA SubString

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

Łańcuch to nic innego jak ciąg 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 uzyskać tylko część ciągu, aby ułatwić nasz cel. Możemy nie potrzebować pełnego ciągu, ale potrzebujemy tylko części ciągu do naszego użytku. Na przykład, jeśli masz imię „Sachin Tendulkar”, możesz potrzebować tylko pierwszej części nazwy, tj. Tylko „Sachin”. Nazywa się to jako SubString ciągu w Excel VBA. Aby poradzić sobie z tymi ciągami, mamy wbudowane funkcje w 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ć.

Możesz pobrać ten szablon VBA SubString Excel tutaj - VBA SubString Szablon Excel

Przykład 1 - użycie funkcji lewej

Jeśli masz pełne imię i nazwisko „Sachin Tendulkar” i potrzebujesz tylko pierwszego imienia do wyodrębnienia jako podłańcucha, użyj następującego 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 z imienia i nazwiska. 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, czyli pełna wartość lub pełny ciąg. W tym przykładzie naszą pełną wartością lub ciągiem jest „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 w sumie 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 wyodrębniliśmy podciąg z lewej strony, podobnie możemy 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 jest naszym 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 ile znaków potrzebujemy z prawej strony, potrzebujemy 9 znaków z prawej strony.

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, zobaczymy nazwisko w oknie komunikatu.

Przykład # 3 - użycie funkcji instr

In the above examples, we had only one name and we have directly supplied how many characters we need from the left & right. But in case of many names first name & last name characters are not the same, it will differ from name to name. In those cases, we cannot supply the number of characters directly so we can use the function Instr.

Instr function will return the supplied character position in the string. For an example look at the below code.

Code:

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

InStr(1, “Sachin”, “a”) this will identify the position of the letter “a” as the first appearance in the string “Sachin”. In this case letter “a” is in the second position. So we will get 2 as the result in the message box.

Like this, we can use the Instr function to find the space character between the first name and last name.

For an example look at the below name I have in excel sheet.

Using LEFT, RIGHT, and Instr function we can extract the substrings. Below is the code to extract the First Name.

Code:

 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 

Run the macro and see the first name as a substring in the message box.

Use below code to extract the last name as a substring.

Code:

 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 

Run the macro and we will see the last name in the message box.

I have assigned the macro button to the worksheet, download the workbook, and use them.