Řetězec VBA | Jak extrahovat podřetězec pomocí funkcí VBA?

Podřetězec VBA aplikace Excel

SubString je část řetězce nebo části nebo se znak řetězce nazývá „SubString“. Existují tři typy podřetězcových funkcí ve VBA LEFT, RIGHT a MID, které jsou podobné jako podřetězce listu v aplikaci Excel.

Řetězec není nic jiného než řada znaků a znaky mohou být abecedy, číslice, speciální znaky a také kombinovat všechny tyto znaky.

Když pracujeme s daty, která jsou řetězcem, v excelu často potřebujeme k usnadnění našeho účelu získat pouze část řetězce. Možná nebudeme potřebovat použít celý řetězec, ale pro naše použití budeme potřebovat pouze jeho část. Například pokud máte jméno „Sachin Tendulkar“, budete možná potřebovat pouze první část jména, tj. Pouze „Sachin“. Toto se nazývá jako podřetězec řetězce v aplikaci Excel VBA. Abychom si s těmito řetězci poradili, máme v kategorii Excel zabudované funkce pod funkcí TEXT.

V tomto článku probereme, jak získat podřetězec z celého řetězce ve VBA.

Jak používat funkce SubString ve VBA?

Chcete-li extrahovat podřetězec z řetězce, máme některé vestavěné textové funkce a některé důležité funkce jsou LEFT, RIGHT, INSTR a MID v aplikaci Excel. Funkce Instr bude sloužit jako podpůrná funkce pro další tři funkce.

Uvidíme, jak pomocí těchto funkcí prakticky extrahovat podřetězce. Abyste jim porozuměli, přečtěte si níže uvedené příklady.

Tuto šablonu VBA SubString Excel si můžete stáhnout zde - Šablona VBA SubString Excel

Příklad č. 1 - Použití levé funkce

Pokud máte celé jméno jako „Sachin Tendulkar“ a potřebujete pouze křestní jméno, které chcete extrahovat jako podřetězec, použijte stejný kód k získání stejného jména.

Krok 1: Vytvořte název makra a definujte dvě proměnné jako řetězec.

Kód:

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

Krok 2: Nyní přiřaďte název „Sachin Tendulkar“ proměnné FullName .

Kód:

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

Krok 3: Nyní proměnná FullName obsahuje hodnotu „Sachin Tendulkar“. Nyní musíme z celého jména extrahovat podřetězec VBA křestního jména aplikace Excel. Přiřaďte tedy proměnné FirstName hodnotu pomocí funkce LEFT.

Kód:

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

Krok 4: Prvním argumentem funkce VBA LEFT je String, což je úplná hodnota nebo celý řetězec. V tomto příkladu je naše úplná hodnota nebo řetězec „Sachin Tendulkar“, který je přiřazen k proměnné FullName.

Jako argument tedy zadejte proměnnou FullName .

Kód:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName jako String FullName = "Sachin Tendulkar" FirstName = levý konec Sub 

Krok 5: Dalším  argumentem je, kolik znaků potřebujeme z řetězce, který jsme zadali, takže v tomto případě potřebujeme křestní jméno „ Sachin “, takže celkem potřebujeme 6 znaků z levé strany.

Kód:

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

Krok 6: Nyní zobrazte výsledek ve schránce zpráv ve VBA.

Kód:

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

Krok 7: Spusťte makro, viz křestní jméno jako podřetězec v okně se zprávou.

Příklad č. 2 - Získejte podřetězec zprava

Stejně jako jsme extrahovali podřetězec zleva, můžeme extrahovat také zprava. Jako příklad si vezměte stejný název.

Krok 1: Definujte dvě proměnné jako řetězec.

Kód:

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

Krok 2: Jako obvykle přiřaďte hodnotu proměnné FullName jako „Sachin Tendulkar“

Kód:

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

Krok 3: Nyní k proměnné LastName přiřaďte hodnotu pomocí funkce RIGHT excel.

Kód:

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

Krok 4: Řetězec je náš FullName, takže zadejte proměnnou.

Kód:

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

Krok 5: Délka je, kolik znaků potřebujeme z pravé strany, potřebujeme 9 znaků z pravé strany.

Kód:

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

Krok 6: Zobrazit tuto hodnotu v okně se zprávou .

Kód:

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

Krok 7: Spustit makro uvidíme příjmení v okně se zprávou.

Příklad č. 3 - Použití funkce Instr

Ve výše uvedených příkladech jsme měli pouze jedno jméno a přímo z levé a pravé strany jsme zadali, kolik znaků potřebujeme. Ale v případě mnoha jmen nejsou znaky jména a příjmení stejné, liší se od jména k jménu. V těchto případech nemůžeme zadat počet znaků přímo, abychom mohli použít funkci Instr.

Funkce Instr vrátí pozici zadaného znaku v řetězci. Například se podívejte na níže uvedený kód.

Kód:

 Sub SubString_Example3 () Dim pozice jako pozice řetězce = InStr (1, "Sachin", "a") MsgBox pozice koncový sub 

InStr (1, „Sachin“, „a“) identifikuje polohu písmene „a“ jako prvního vzhledu v řetězci „Sachin“. V tomto případě je písmeno „a“ na druhé pozici. Výsledkem tedy bude 2 v okně se zprávou.

Takto můžeme použít funkci Instr k vyhledání znaku mezery mezi křestním jménem a příjmením.

Například se podívejte na níže uvedené jméno, které mám v listu aplikace Excel.

Pomocí funkcí LEFT, RIGHT a Instr můžeme extrahovat podřetězce. Níže je uveden kód pro extrahování křestního jména.

Kód:

 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 

Spusťte makro a uvidíte křestní jméno jako podřetězec v okně se zprávou.

Níže uvedený kód použijte k extrakci příjmení jako podřetězce.

Kód:

 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 

Spusťte makro a v okně se zprávou uvidíme příjmení.

Tlačítko makra jsem přiřadil listu, stáhl sešit a použil je.


$config[zx-auto] not found$config[zx-overlay] not found