VBA má mnoho reťazcových funkcií, ktoré vám umožnia manipulovať a pracovať s textom a reťazcami vo vašom kóde. V tomto tutoriáli sa budeme zaoberať funkciami, ktoré vám umožnia extrahovať podreťazce z reťazcov, odstraňovať medzery z reťazcov, prevádzať prípad textu alebo reťazca, porovnávať reťazce a ďalšie užitočné funkcie reťazcov.
Extrahovanie podreťazca
Funkcia ľavého reťazca VBA
Ľavá funkcia VBA vám umožňuje extrahovať podreťazec z textu alebo reťazca začínajúc z ľavej strany. Syntax funkcie ľavého reťazca VBA je:
Vľavo (reťazec, počet_znakov), kde:
- Reťazec - pôvodný text.
- Počet_znakov - Celé číslo, ktoré určuje počet znakov, ktoré sa majú extrahovať z pôvodného textu, od začiatku.
Nasledujúci kód ukazuje, ako použiť funkciu ľavého reťazca na extrahovanie prvých štyroch znakov daného reťazca:
1234567891011 | Podradené používanieTheLeftStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "AutomateExcel"valueTwo = vľavo (valueOne, 4)MsgBox valueTwoKoniec pod |
Výsledkom je:
Funkcia vľavo extrahovala prvé štyri písmena programu AutomateExcel, ktoré sú automatické.
Funkcia pravého reťazca VBA
Správna funkcia VBA vám umožňuje extrahovať podreťazec z textu alebo reťazca začínajúc z pravej strany. Syntax funkcie pravého reťazca VBA je:
Vpravo (reťazec, počet_znakov), kde:
- Reťazec - pôvodný text.
- Počet_znakov - Celé číslo, ktoré určuje počet znakov, ktoré sa majú extrahovať z pôvodného textu, začínajúc od konca.
Nasledujúci kód ukazuje, ako použiť funkciu pravého reťazca na extrahovanie posledných štyroch znakov reťazca:
1234567891011 | Podradené používanieTheRightStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "AutomateExcel"valueTwo = Right (valueOne, 4)MsgBox valueTwoKoniec pod |
Výsledkom je:
Správna funkcia extrahovala posledné štyri písmena programu AutomateExcel, ktoré sú xcel.
Funkcia stredného reťazca VBA
Funkcia VBA Mid vám umožňuje extrahovať podreťazec z textu alebo reťazca, a to od ľubovoľnej pozície v reťazci, ktorý zadáte. Syntax funkcie stredného reťazca VBA je:
Stredný (reťazec, počiatočná_pozícia, [počet_charakterov]), kde:
- Reťazec - pôvodný text.
- Počiatočná pozícia - pozícia v pôvodnom texte, z ktorej sa funkcia začne extrahovať.
- Počet_znakov (Voliteľné) - Celé číslo, ktoré určuje počet znakov, ktoré sa majú extrahovať z pôvodného textu, počnúc počiatočnou_pozíciou. Ak je prázdne, funkcia MID vráti všetky znaky z počiatočnej polohy.
Nasledujúci kód ukazuje, ako použiť funkciu stredného reťazca na extrahovanie štyroch znakov, počnúc druhou pozíciou alebo znakom v reťazci:
1234567891011 | Podradené používanieTheMidStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "AutomateExcel"valueTwo = Mid (valueOne, 2, 4)MsgBox valueTwoKoniec pod |
Výsledok sa zobrazí v msgboxe:
Stredná funkcia extrahovala štyri písmena programu AutomateExcel, počínajúc druhým znakom/polohou/písmenom, ktoré sú bežné.
Zistenie polohy podreťazca
Funkcia reťazca VBA Instr
Funkcia VBA Instr vracia počiatočnú pozíciu podreťazca v inom reťazci. Táto funkcia rozlišuje veľké a malé písmená. Syntax reťazcovej funkcie VBA Instr je:
Instr ([Štart], Reťazec, Podreťazec, [Porovnať]), kde:
- Začať (Voliteľné) - Toto určuje počiatočnú pozíciu funkcie, z ktorej sa má hľadať. Ak je pole prázdne, použije sa predvolená hodnota 1.
- Reťazec - pôvodný text.
- Podreťazec- Podreťazec v pôvodnom texte, ktorého polohu chcete nájsť.
- Porovnať (Voliteľné)- Toto určuje typ porovnávania, ktoré sa má vykonať. Ak je pole prázdne, použije sa binárne porovnanie.
-vbBinaryCompare - Binárne porovnanie (veľké a malé písmená sa považujú za odlišné)
-vbTextCompare - Porovnanie textu (veľké a malé písmená sa považujú za rovnaké)
-vbDatabaseCompare - Porovnanie databázy (Táto možnosť sa používa iba v programe Microsoft Access a je porovnaním na základe databázy)
Nasledujúci kód ukazuje, ako použiť funkciu reťazca Instr na určenie prvého výskytu podreťazca „Th“ v hlavnom reťazci:
123456789101112 | Podradené používanieTheInstrStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Toto je text"positionofSubstring = InStr (1, valueOne, "Th")Debug.Print position of SubstringKoniec pod |
Výsledok (výstup do okamžitého okna) je:
Funkcia Instr vrátila pozíciu prvého výskytu podreťazca „Th“, ktorý je 1. Všimnite si, že táto funkcia obsahuje medzery v počte.
Funkcia reťazca VBA InstrRev
Funkcia VBA InstrRev vracia počiatočnú pozíciu podreťazca v inom reťazci, ale začína počítať pozíciu od konca reťazca. Táto funkcia rozlišuje veľké a malé písmena. Syntax reťazcovej funkcie VBA InstrRev je:
InstrRev (reťazec, podreťazec, [štart], [porovnať]), kde:
- Reťazec - pôvodný text.
- Podreťazec- Podreťazec v pôvodnom texte, ktorého polohu chcete nájsť.
- Začať (Voliteľné) - Toto určuje pozíciu, od ktorej sa má začať hľadať. Ak je pole prázdne, funkcia začne hľadať od posledného znaku.
- Porovnať (Voliteľné)- Toto určuje typ porovnávania, ktoré sa má vykonať. Ak je pole prázdne, použije sa binárne porovnanie.
-vbBinaryCompare - Binárne porovnanie (veľké a malé písmená sa považujú za odlišné)
-vbTextCompare - Porovnanie textu (veľké a malé písmená sa považujú za rovnaké)
-vbDatabaseCompare - Porovnanie databázy (Táto možnosť sa používa iba v programe Microsoft Access a je porovnaním na základe databázy)
Nasledujúci kód ukazuje, ako použiť funkciu reťazca InstrRev na určenie prvého výskytu podreťazca „Th“ v hlavnom reťazci, počnúc od konca reťazca:
1234567891011 | Čiastkové používanieTheInstrRevStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Toto je text"positionofSubstring = InStrRev (valueOne, "Th")Debug.Print position of SubstringKoniec pod |
Výsledok sa zobrazí v okamžitom okne:
Funkcia InstrRev vrátila pozíciu prvého výskytu podreťazca „Th“, ale začína počítanie od konca, ktorý je 9. Všimnite si, že táto funkcia obsahuje medzery v počte.
Odstránenie medzier z reťazca
Funkcia reťazca VBA LTrim
Funkcia VBA LTrim odstráni z textu alebo reťazca všetky úvodné medzery. Syntax reťazcovej funkcie VBA LTrim je:
LTrim (reťazec), kde:
- Reťazec - pôvodný text.
Nasledujúci kód ukazuje, ako použiť funkciu VBA LTrim na odstránenie úvodných medzier v danom reťazci:
123456789101112 | Čiastkové používanieTheLTrimStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "Toto je dodatok k webovej stránke https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox hodnotaJednaMsgBox valueTwoKoniec pod |
Výsledky sú tieto:
Funkcia LTrim odstránila úvodné medzery pre valuetwo, ktoré je zobrazené v druhom poli so správami.
Funkcia reťazca VBA RTrim
Funkcia VBA RTrim odstráni z textu alebo reťazca všetky koncové medzery. Syntax reťazcovej funkcie VBA RTrim je:
RTrim (reťazec), kde:
- Reťazec - pôvodný text.
Nasledujúci kód ukazuje, ako použiť funkciu VBA RTrim na odstránenie koncových medzier v danom reťazci:
123456789101112 | Podradené používanieTheRTrimStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "Toto je dodatok k webovej stránke https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox hodnotaJednaMsgBox valueTwoKoniec pod |
Doručenými výsledkami sú:
Funkcia RTrim odstránila koncové medzery pre valuetwo, ktoré sú zobrazené v druhom poli so správami.
Funkcia skrátenia reťazca VBA
Funkcia orezania VBA odstráni z textu alebo reťazca všetky úvodné a koncové medzery. Syntax funkcie skrátenia reťazca VBA je:
Zostrihajte (reťazec), kde:
- Reťazec - pôvodný text.
Nasledujúci kód ukazuje, ako použiť funkciu orezania VBA na odstránenie úvodných a koncových medzier v danom reťazci:
123456789101112 | Vedľajšie používanieTheTrimStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "Toto je dodatok k webovej stránke https://easyexcel.net/excel/"valueTwo = Trim (valueOne)MsgBox hodnotaJednaMsgBox valueTwoKoniec pod |
Výsledky sú tieto:
Funkcia orezania odstránila začiatočné a zadné medzery pre hodnotetwo, ktoré je zobrazené v druhom okne so správou.
Funkcie prípadu VBA
Funkcia reťazca VBA LCase
Funkcia VBA LCase prevádza písmená v texte alebo reťazci na malé písmená. Syntax funkcie reťazca VBA LCase je:
LCáza (reťazec), kde:
- Reťazec - pôvodný text.
Nasledujúci kód ukazuje, ako pomocou funkcie LCase String previesť všetky písmená v danom reťazci na malé písmená:
1234567891011 | Vedľajšie použitieTheLCaseStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "TOTO JE PRODUKT"valueTwo = LCase (valueOne)MsgBox valueTwoKoniec pod |
Výsledkom je:
Funkcia LCase skonvertovala všetky písmená v reťazci na malé písmená.
Funkcia reťazca VBA UCase
Funkcia VBA UCase prevádza písmená v texte alebo reťazci na veľké písmená. Syntax reťazcovej funkcie VBA UCase je:
UCase (reťazec), kde:
- Reťazec - pôvodný text.
Nasledujúci kód ukazuje, ako použiť funkciu reťazca UCase na prevod všetkých písmen v danom reťazci na veľké písmená:
1234567891011 | Vedľajšie použitieTheUCaseStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "toto je produkt"valueTwo = UCase (valueOne)MsgBox valueTwoKoniec pod |
Výsledkom je:
Funkcia UCase skonvertovala všetky písmená v reťazci na veľké písmená.
Funkcia VBA StrConv
Funkcia VBA StrConv môže prevádzať písmená v texte alebo reťazci na veľké písmena, malé písmená, vlastné písmená alebo unicode v závislosti od typu prevodu, ktorý zadáte. Syntax reťazcovej funkcie VBA StrConv je:
StrConv (reťazec, konverzia, [LCID]), kde:
- Reťazec - pôvodný text.
- Konverzia - požadovaný typ konverzie.
- [LCID] (Voliteľné) -Voliteľný parameter, ktorý určuje LocaleID. Ak je pole prázdne, použije sa systémové LocaleID.
Nasledujúci kód ukazuje, ako použiť funkciu reťazca StrConv na konverziu reťazca na správne písmená:
1234567891011 | Čiastkové používanieTheStrConvStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "toto je TEN výrobok"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoKoniec pod |
Výsledkom je:
Pomocou parametra konverzie určíte typ konverzie, ktorú chcete vykonať:
- vbLowerCase prevádza všetky písmená v texte na malé písmená.
- vbUpperCase prevádza všetky písmená v texte na veľké písmená.
- vbProperCase prevádza prvé písmeno každého slova v texte na veľké písmená, pričom všetky ostatné písmena sú ponechané ako malé písmená.
- vbUnicode prevádza reťazec na unicode.
- vbFromUnicode prevádza reťazec z unicode na predvolenú kódovú stránku systému.
Porovnávanie strún
Funkcia VBA StrComp
Funkcia reťazca VBA StrComp vám umožňuje porovnať dva reťazce. Funkcia vracia:
- 0, ak sa tieto dva reťazce zhodujú
- -1, ak je reťazec1 menší ako reťazec2
- 1, ak je reťazec1 väčší ako reťazec2
- Hodnota null, ak jeden z reťazcov bol Null
Nasledujúci kód ukazuje, ako použiť funkciu StrComp na porovnanie dvoch reťazcov:
123456789101112 | Čiastkové používanieTheStrCompStringFunction ()Dim valueOne As StringDim valueDwo As StringDim resultofPorovnanie ako celé číslovalueOne = "AutomateExcel"valueTwo = "AutomateExcel"resultofComparison = StrComp (valueOne, valueTwo)Debug.Print resumtofComparisonKoniec pod |
Výsledkom je:
Funkcia StrComp našla presnú zhodu medzi týmito dvoma reťazcami a vrátila hodnotu 0.
Operátor ako VBA
Operátor typu VBA vám umožňuje porovnať text alebo reťazec so vzorom a zistiť, či existuje zhoda. Operátora Like by ste zvyčajne používali v spojení so zástupnými znakmi. Nasledujúci kód ukazuje, ako používať operátora Like:
123456789101112 | Podradené používanieTheLikeOperatorInVBA ()Dim valueOne As StringvalueOne = "Pozrime sa na výstup"Ak valueOne Like „*zobraziť*“ PotomMsgBox „Existuje zhoda, tento reťazec obsahuje zobrazenie slova“InakMsgBox „Nebola nájdená žiadna zhoda“Koniec AkKoniec pod |
Výsledkom je:
Medzi zástupné znaky, ktoré môžete použiť s operátorom Like na vyhľadanie zhody vzorov, patria:
- ? ktorý zodpovedá jednému znaku
- #, ktoré sa zhoduje s jednou číslicou
- * ktorý zodpovedá nule alebo viac znakom
Nasledujúci kód vám ukáže, ako by ste používali operátora Like a operátor? zástupný znak, ktorý zodpovedá vzoru vo vašom kóde:
123456789101112 | Čiastkové používanieTheLikeOperatorWithAWildcardInVBA ()Dim valueOne As StringvalueOne = "The"Ak valueOne Like "?? e" PotomMsgBox „Existuje zhoda, našiel sa zodpovedajúci vzor“InakMsgBox „Nebola nájdená žiadna zhoda“Koniec AkKoniec pod |
Výsledkom je:
Ďalšie užitočné funkcie reťazca VBA
Funkcia nahradenia reťazca VBA
Funkcia nahradenia VBA nahradí množinu znakov v reťazci inou sadou znakov. Syntax funkcie nahradenia reťazca VBA je:
Nahradiť (Reťazec, Hľadať, Nahradiť, [Štart], [Počet], [Porovnať]) kde:
- Reťazec - pôvodný text.
- Hľadať - podreťazec, ktorý sa má hľadať v pôvodnom texte.
- Nahradiť - podreťazec, ktorý má nahradiť podreťazec Hľadať.
- Začať (Voliteľné)- Poloha, v ktorej môžete začať hľadať v pôvodnom texte. Ak je pole prázdne, použije sa hodnota 1 a funkcia sa spustí od prvého znaku.
- Počítať (Voliteľné)- Počet výskytov podreťazca Hľadať v pôvodnom texte, ktorý sa má nahradiť. Ak je prázdny, nahradia sa všetky výskyty podreťazca Find.
- Porovnať (Voliteľné)- Toto určuje typ porovnávania, ktoré sa má vykonať. Ak je pole prázdne, použije sa binárne porovnanie.
-vbBinaryCompare - Binárne porovnanie
-vbTextCompare - Porovnanie textu
-vbDatabaseCompare - Porovnanie databázy (Táto možnosť sa používa iba v programe Microsoft Access a je porovnaním na základe databázy.)
Nasledujúci kód ukazuje, ako používať funkciu Nahradiť reťazec:
1234567891011 | Podradené používanieTheReplaceStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "ProductABC"valueTwo = Nahradiť (valueOne, "ABC", "XYZ")MsgBox valueTwoKoniec pod |
Výsledkom je:
Funkcia nahradenia našla podreťazec ABC v rámci ProductABC a nahradila ho podreťazcom XYZ.
Funkcia VBA StrReverse
Funkcia VBA StrReverse obráti znaky v danom texte alebo reťazci. Syntax reťazcovej funkcie VBA StrReverse je:
StrReverse (String) kde:
- Reťazec - pôvodný text.
Nasledujúci kód ukazuje, ako použiť funkciu VBA StrReverse na obrátenie znakov v reťazci Produkt:
1234567891011 | Čiastkové používanieTheStrReverseStringFunction ()Dim valueOne As StringDim valueDwo As StringvalueOne = "Produkt"valueTwo = StrReverse (valueOne)MsgBox valueTwoKoniec pod |
Výsledkom je:
Funkcia reťazca VBA Len
Funkcia VBA Len vracia počet znakov v textovom reťazci. Syntax funkcie reťazca VBA Len je:
Len (reťazec), kde:
- Reťazec - pôvodný text.
Nasledujúci kód ukazuje, ako použiť funkciu Len String na určenie dĺžky reťazca AutomateExcel:
1234567891011 | Podradené používanieTheLenFunction ()Dim valueOne As StringDim stringLength As IntegervalueOne = "AutomateExcel"stringLength = Len (valueOne)Debug.Print stringLengthKoniec pod |
Výsledkom je:
Funkcia Len spočítala všetky znaky v texte AutomateExcel, ktorý má 13 písmen.