VBA ma wiele funkcji ciągów, które pozwolą ci manipulować i pracować z tekstem i ciągami w kodzie. W tym samouczku omówimy funkcje, które pozwolą Ci wyodrębnić podciągi z ciągów, usunąć spacje z ciągów, przekonwertować wielkość liter w tekście lub ciągu, porównać ciągi i inne przydatne funkcje ciągów.
Wyodrębnianie podciągu
Funkcja lewego ciągu VBA
Funkcja VBA Left pozwala wyodrębnić podciąg z tekstu lub ciągu, zaczynając od lewej strony. Składnia funkcji lewego ciągu VBA to:
Left(Ciąg, Liczba_znaków) gdzie:
- Ciąg - oryginalny tekst.
- Liczba_znaków - Liczba całkowita określająca liczbę znaków do wyodrębnienia z oryginalnego tekstu, zaczynając od początku.
Poniższy kod pokazuje, jak użyć funkcji Left String w celu wyodrębnienia pierwszych czterech znaków z danego ciągu:
1234567891011 | Sub przy użyciu funkcjiLeftString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "Automatyzacja Excela"wartośćDwa = Lewa(wartośćJeden; 4)MsgBox wartość DwaNapis końcowy |
Wynik to:
Funkcja Left wyodrębniła pierwsze cztery litery AutomateExcel, które są Auto.
Funkcja prawego ciągu VBA
Funkcja VBA Right umożliwia wyodrębnienie podciągu z tekstu lub ciągu, zaczynając od prawej strony. Składnia funkcji prawego ciągu VBA to:
Prawo(ciąg, liczba_znaków) gdzie:
- Ciąg - oryginalny tekst.
- Liczba_znaków - Liczba całkowita określająca liczbę znaków do wyodrębnienia z oryginalnego tekstu, począwszy od końca.
Poniższy kod pokazuje, jak użyć funkcji Right String, aby wyodrębnić cztery ostatnie znaki ciągu:
1234567891011 | Sub przy użyciu funkcjiRightString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "Automatyzacja Excela"wartośćDwa = Prawo(wartośćJeden; 4)MsgBox wartość DwaNapis końcowy |
Wynik to:
Właściwa funkcja wyodrębniła ostatnie cztery litery AutomateExcel, którymi są xcel.
Funkcja VBA Mid String
Funkcja VBA Mid umożliwia wyodrębnienie podciągu z tekstu lub ciągu, zaczynając od dowolnej pozycji w ciągu, który określisz. Składnia funkcji VBA Mid String Function to:
Mid(Ciąg, Pozycja_początkowa, [Liczba_znaków]) gdzie:
- Ciąg - oryginalny tekst.
- Pozycja_początkowa - pozycja w oryginalnym tekście, od której funkcja rozpocznie wyodrębnianie.
- Liczba_znaków (Opcjonalny) - Liczba całkowita określająca liczbę znaków do wyodrębnienia z oryginalnego tekstu, zaczynając od pozycji początkowej. Jeśli jest puste, funkcja MID zwróci wszystkie znaki z pozycji początkowej.
Poniższy kod pokazuje, jak użyć funkcji Mid String, aby wyodrębnić cztery znaki, zaczynając od drugiej pozycji lub znaku w ciągu:
1234567891011 | Sub za pomocą funkcjiMidString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "Automatyzacja Excela"wartośćDwa = Mid(wartośćJeden; 2, 4)MsgBox wartość DwaNapis końcowy |
Wynik jest wyprowadzany do msgbox:
Funkcja Mid wyodrębniła cztery litery AutomateExcel, zaczynając od drugiego znaku / pozycji / litery, które są utom.
Znajdowanie pozycji podciągu
Funkcja ciągu instrukcji VBA
Funkcja VBA Instr zwraca pozycję początkową podciągu w innym ciągu. W tej funkcji rozróżniana jest wielkość liter. Składnia funkcji VBA Instr String Function to:
Instr([Początek], Ciąg, Podciąg, [Porównaj]) gdzie:
- Początek (Opcjonalny) - określa pozycję początkową funkcji, od której ma być wyszukiwane. Jeśli puste, używana jest wartość domyślna 1.
- Ciąg - oryginalny tekst.
- Podciąg- Podciąg w oryginalnym tekście, którego położenie chcesz znaleźć.
- Porównywać (Opcjonalny)- Określa rodzaj porównania, które należy wykonać. Jeśli puste, używane jest porównanie binarne.
-vbBinaryCompare - Porównanie binarne (wielkie i małe litery są traktowane jako różne)
-vbTextCompare - Porównanie tekstu (wielkie i małe litery są traktowane jako takie same)
-vbDatabaseCompare - porównanie bazy danych (ta opcja jest używana tylko w programie Microsoft Access i jest porównaniem na podstawie bazy danych)
Poniższy kod pokazuje, jak używać funkcji Instr String w celu określenia pierwszego wystąpienia podciągu „Th” w ciągu głównym:
123456789101112 | Sub za pomocą funkcjiInstrString()Wartość przyciemnienia Jeden jako ciągDim positionofSubstring As IntegervalueOne = "To jest tekst"positionofSubstring = InStr(1, valueOne, "Th")Debug.Print positionofSubstringNapis końcowy |
Wynik (wyprowadzany do okna bezpośredniego) to:
Funkcja Instr zwróciła pozycję pierwszego wystąpienia podciągu „Th”, która wynosi 1. Zauważ, że ta funkcja zawiera spacje w liczniku.
Funkcja ciągu znaków VBA InstrRev
Funkcja VBA InstrRev zwraca pozycję początkową podciągu w innym ciągu, ale rozpoczyna liczenie pozycji od końca ciągu. W tej funkcji rozróżniana jest wielkość liter. Składnia funkcji napisów VBA InstrRev to:
InstrRev(Ciąg, Podciąg, [Początek], [Porównaj]) gdzie:
- Ciąg - oryginalny tekst.
- Podciąg- Podciąg w oryginalnym tekście, którego położenie chcesz znaleźć.
- Początek (Opcjonalny) - określa pozycję, od której należy rozpocząć wyszukiwanie. Jeśli puste, funkcja rozpoczyna wyszukiwanie od ostatniego znaku.
- Porównywać (Opcjonalny)- Określa rodzaj porównania, które należy wykonać. Jeśli puste, używane jest porównanie binarne.
-vbBinaryCompare - Porównanie binarne (wielkie i małe litery są traktowane jako różne)
-vbTextCompare - Porównanie tekstu (wielkie i małe litery są traktowane jako takie same)
-vbDatabaseCompare - porównanie bazy danych (ta opcja jest używana tylko w programie Microsoft Access i jest porównaniem na podstawie bazy danych)
Poniższy kod pokazuje, jak używać funkcji ciągu InstrRev do określenia pierwszego wystąpienia podciągu „Th” w ciągu głównym, zaczynając od końca ciągu:
1234567891011 | Sub przy użyciu funkcjiInstrRevStringFunction()Wartość przyciemnienia Jeden jako ciągDim positionofSubstring As IntegervalueOne = "To jest tekst"positionofSubstring = InStrRev(valueOne, "Th")Debug.Print positionofSubstringNapis końcowy |
Wynik jest wyprowadzany do okna bezpośredniego:
Funkcja InstrRev zwróciła pozycję pierwszego wystąpienia podciągu „Th”, ale rozpoczynając liczenie od końca, którym jest 9. Zauważ, że ta funkcja zawiera spacje w liczniku.
Usuwanie spacji z ciągu
Funkcja ciągu znaków VBA LTrim
Funkcja VBA LTrim usuwa wszystkie spacje wiodące z tekstu lub ciągu. Składnia funkcji napisów VBA LTrim jest następująca:
LTrim(ciąg) gdzie:
- Ciąg - oryginalny tekst.
Poniższy kod pokazuje, jak używać funkcji VBA LTrim do usuwania spacji wiodących w danym ciągu:
123456789101112 | Sub Korzystanie TheLTrimStringFunction()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = " To jest adres witryny https://easyexcel.net/excel/"valueTwo = LTrim(valueOne)MsgBox wartośćJedenMsgBox wartość DwaNapis końcowy |
Wyniki to:
Funkcja LTrim usunęła spacje wiodące dla wartości dwa, co jest pokazane w drugim oknie komunikatu.
Funkcja ciągu znaków VBA RTrim
Funkcja VBA RTrim usuwa wszystkie końcowe spacje z tekstu lub ciągu. Składnia funkcji ciągu VBA RTrim to:
RTrim(ciąg), gdzie:
- Ciąg - oryginalny tekst.
Poniższy kod pokazuje, jak używać funkcji VBA RTrim, aby usunąć końcowe spacje w danym ciągu:
123456789101112 | Sub KorzystanieTheRTrimStringFunction()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "To jest adres strony https://easyexcel.net/excel/ "valueTwo = RTrim(valueOne)MsgBox wartośćJedenMsgBox wartość DwaNapis końcowy |
Dostarczone wyniki to:
Funkcja RTrim usunęła końcowe spacje dla wartości dwa, co jest pokazane w drugim oknie komunikatu.
Funkcja ciągów przycinania VBA
Funkcja przycinania VBA usuwa wszystkie spacje wiodące i końcowe z tekstu lub ciągu. Składnia funkcji VBA Trim String Function to:
Trim(Ciąg), gdzie:
- Ciąg - oryginalny tekst.
Poniższy kod pokazuje, jak używać funkcji przycinania VBA do usuwania spacji wiodących i końcowych w danym ciągu:
123456789101112 | Sub Używając FunkcjiTrimString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = " To jest adres witryny https://easyexcel.net/excel/ "valueTwo = Przytnij(valueOne)MsgBox wartośćJedenMsgBox wartość DwaNapis końcowy |
Wyniki to:
Funkcja Trim usunęła spacje wiodące i końcowe dla wartości dwa, co jest pokazane w drugim oknie komunikatu.
Funkcje przypadku VBA
Funkcja ciągu znaków VBA Lcase
Funkcja VBA LCase konwertuje litery w tekście lub ciągu na małe litery. Składnia funkcji napisów VBA LCase jest następująca:
LCase(Ciąg), gdzie:
- Ciąg - oryginalny tekst.
Poniższy kod pokazuje, jak użyć funkcji LCase String, aby przekonwertować wszystkie litery w danym ciągu na małe litery:
1234567891011 | Sub przy użyciu funkcji TheLCaseString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "TO JEST PRODUKT"valueTwo = LCase(valueOne)MsgBox wartość DwaNapis końcowy |
Wynik to:
Funkcja LCase przekonwertowała wszystkie litery w ciągu na małe.
Funkcja ciągu VBA UCase
Funkcja VBA UCase konwertuje litery w tekście lub ciągu na wielkie litery. Składnia funkcji ciągów VBA UCase to:
UCase(Ciąg), gdzie:
- Ciąg - oryginalny tekst.
Poniższy kod pokazuje, jak używać funkcji ciągów UCase do konwersji wszystkich liter w danym ciągu na wielkie litery:
1234567891011 | Sub Używając Funkcji UCaseString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "to jest produkt"valueTwo = UCase(valueOne)MsgBox wartość DwaNapis końcowy |
Wynik to:
Funkcja UCase przekonwertowała wszystkie litery w ciągu na duże.
Funkcja VBA StrConv
Funkcja VBA StrConv może konwertować litery w tekście lub ciągu na wielkie, małe litery, właściwe litery lub Unicode w zależności od określonego typu konwersji. Składnia funkcji ciągów VBA StrConv to:
StrConv(ciąg, konwersja, [LCID]), gdzie:
- Ciąg - oryginalny tekst.
- Konwersja - żądany typ konwersji.
- [LCID] (Opcjonalny) -Opcjonalny parametr określający LocaleID. Jeśli puste, używany jest system LocaleID.
Poniższy kod pokazuje, jak używać funkcji ciągu StrConv do konwersji ciągu na poprawną wielkość liter:
1234567891011 | Sub KorzystanieTheStrConvStringFunction()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "to jest produkt"valueTwo = StrConv(valueOne, vbProperCase)MsgBox wartość DwaNapis końcowy |
Wynik to:
Typ konwersji, którą chcesz wykonać, określasz za pomocą parametru konwersji:
- vbLowerCase konwertuje wszystkie litery w tekście na małe.
- vbUpperCase konwertuje wszystkie litery w tekście na duże.
- vbProperCase konwertuje pierwszą literę każdego słowa w tekście na wielką literę, podczas gdy wszystkie pozostałe litery są zachowywane jako małe.
- vbUnicode konwertuje ciąg do Unicode.
- vbFromUnicode konwertuje ciąg znaków z Unicode na domyślną stronę kodową systemu.
Porównywanie ciągów
Funkcja VBA StrComp
Funkcja ciągu znaków VBA StrComp umożliwia porównanie dwóch ciągów znaków. Funkcja zwraca:
- 0, jeśli dwa ciągi pasują do siebie
- -1 jeśli string1 jest mniejszy niż string2
- 1, jeśli ciąg1 jest większy niż ciąg2
- Wartość null, jeśli którykolwiek z ciągów był Null
Poniższy kod pokazuje, jak używać funkcji StrComp do porównywania dwóch ciągów:
123456789101112 | Sub KorzystanieTheStrCompStringFunction()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringDim wynik porównania jako liczba całkowitavalueOne = "Automatyzacja Excela"valueTwo = "AutomateExcel"resultofComparison = StrComp(valueOne, valueTwo)Debug.Wydrukuj wynik porównaniaNapis końcowy |
Wynik to:
Funkcja StrComp znalazła dokładne dopasowanie między dwoma ciągami i zwróciła 0.
Operator podobny do VBA
Operator podobny do VBA umożliwia porównanie tekstu lub ciągu ze wzorcem i sprawdzenie, czy istnieje dopasowanie. Zwykle używałbyś operatora Like w połączeniu z symbolami wieloznacznymi. Poniższy kod pokazuje, jak używać operatora Like:
123456789101112 | Sub przy użyciu operatora podobnego do VBA()Wartość przyciemnienia Jeden jako ciągvalueOne = "Zobaczmy wyniki"Jeśli valueOne Like „*widok*” WtedyMsgBox "Istnieje dopasowanie, ten ciąg zawiera widok wyrazów"W przeciwnym razieMsgBox "Nie znaleziono dopasowania"Zakończ, jeśliNapis końcowy |
Wynik to:
Symbole wieloznaczne, których możesz użyć z operatorem Like, aby znaleźć dopasowania wzorców, obejmują:
- ? który pasuje do jednego znaku
- # co pasuje do jednej cyfry
- * co pasuje do zera lub więcej znaków
Poniższy kod pokazuje, w jaki sposób można użyć operatora Like i ? symbol wieloznaczny, aby dopasować wzorzec w kodzie:
123456789101112 | Sub przy użyciu operatora podobnego do dzikiej karty w VBA()Wartość przyciemnienia Jeden jako ciągvalueOne = "The"Jeśli valueOne Like „??e” WtedyMsgBox "Istnieje dopasowanie, znaleziono pasujący wzorzec"W przeciwnym razieMsgBox "Nie znaleziono dopasowania"Zakończ, jeśliNapis końcowy |
Dostarczony wynik to:
Inne przydatne funkcje ciągów VBA
Funkcja zastępowania ciągu VBA
Funkcja zastępowania VBA zastępuje zestaw znaków w ciągu innym zestawem znaków. Składnia funkcji VBA Replace String Function to:
Replace(String, Find, Replace, [Start], [Count], [Compare]), gdzie:
- Ciąg - oryginalny tekst.
- Znajdź - podciąg do wyszukania w oryginalnym tekście.
- Zamień - podciąg, który ma zastąpić podciąg Znajdź.
- Początek (Opcjonalny)- Miejsce rozpoczęcia wyszukiwania w oryginalnym tekście. Jeśli jest puste, używana jest wartość 1, a funkcja rozpoczyna się od pierwszej pozycji znaku.
- Liczyć (Opcjonalny)– liczba wystąpień podciągu Znajdź w oryginalnym tekście do zastąpienia. Jeśli jest puste, wszystkie wystąpienia podciągu Find są zastępowane.
- Porównywać (Opcjonalny)- Określa rodzaj porównania, które należy wykonać. Jeśli puste, używane jest porównanie binarne.
-vbBinaryCompare - Porównanie binarne
-vbTextCompare - Porównanie tekstu
-vbDatabaseCompare - porównanie bazy danych (ta opcja jest używana tylko w programie Microsoft Access i jest porównaniem na podstawie bazy danych).
Poniższy kod pokazuje, jak używać funkcji Replace String:
1234567891011 | Sub Korzystanie Funkcja ZamieńString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "ProduktABC"valueTwo = Replace(valueOne, "ABC", "XYZ")MsgBox wartość DwaNapis końcowy |
Wynik to:
Funkcja Replace znalazła podciąg ABC w ProductABC i zastąpiła go podciągiem XYZ.
Funkcja VBA StrReverse
Funkcja VBA StrReverse odwraca znaki w danym tekście lub ciągu. Składnia funkcji VBA StrReverse String to:
StrReverse(Ciąg) gdzie:
- Ciąg - oryginalny tekst.
Poniższy kod pokazuje, jak używać funkcji VBA StrReverse do odwracania znaków w ciągu Product:
1234567891011 | Sub Używanie funkcjiStrReverseString()Wartość przyciemnienia Jeden jako ciągWartość dim Two As StringvalueOne = "Produkt"valueTwo = StrReverse(valueOne)MsgBox wartość DwaNapis końcowy |
Wynik to:
Funkcja VBA Len String
Funkcja VBA Len zwraca liczbę znaków w ciągu tekstowym. Składnia funkcji VBA Len String Function to:
Len(Ciąg), gdzie:
- Ciąg - oryginalny tekst.
Poniższy kod pokazuje, jak używać funkcji Len String w celu określenia długości ciągu AutomateExcel:
1234567891011 | Sub przy użyciu funkcjiLen()Wartość przyciemnienia Jeden jako ciągDim stringLength As IntegervalueOne = "Automatyzacja Excela"stringLength = Len(valueOne)Debug.Print stringLengthNapis końcowy |
Wynik to:
Funkcja Len policzyła wszystkie znaki w tekście AutomateExcel, który ma 13 liter.