Pravá funkce VBA (příklady) | Průvodce krok za krokem k aplikaci Excel VBA vpravo

Správná funkce ve VBA Excel

Pravá funkce je stejná jako u funkce listu i VBA, použití této funkce spočívá v tom, že nám dává podřetězec z daného řetězce, ale vyhledávání se provádí zprava doleva od řetězce, jedná se o typ řetězcové funkce ve VBA používá se s metodou funkce application.worksheet.

PRAVÁ Funkce v aplikaci Excel VBA, která se používá k extrakci znaků z pravé strany zadaných textových hodnot. V aplikaci Excel máme mnoho textových funkcí pro práci s textovými daty. Některé z užitečných funkcí jsou funkce LEN, LEFT, RIGHT, MID pro extrahování znaků z textových hodnot. Běžným příkladem použití těchto funkcí je extrahování jména a příjmení odděleně od celého jména.

Rovný vzorec je také v listu. Ve VBA se musíme spoléhat na třídu funkcí listu pro přístup k funkci VBA RIGHT, spíše máme vestavěnou funkci RIGHT také ve VBA.

Nyní se podívejte na níže uvedenou syntaxi vzorce VBA RIGHT.

  • Řetězec: Toto je naše hodnota a z této hodnoty se snažíme extrahovat znaky z pravé strany řetězce.
  • Délka: Z dodaného řetězce, kolik znaků potřebujeme. Pokud potřebujeme čtyři znaky z pravé strany, můžeme argument dodat jako 4.

Pokud je například řetězec „Mobilní telefon“ a chceme-li extrahovat pouze slovo „Telefon“, můžeme zadat argument jako níže.

VPRAVO („mobilní telefon“, 5)

Důvod, proč jsem zmínil 5, protože slovo „Telefon“ má 5 písmen. V další části článku uvidíme, jak jej můžeme použít ve VBA.

Příklady funkce Excel VBA Right

Následuje ukázka správných funkcí VBA Excel.

Tuto šablonu Excel s pravými funkcemi VBA si můžete stáhnout zde - šablonu Excel s pravými funkcemi VBA

Příklad č. 1

Ukážu vám jednoduchý příklad k zahájení řízení. Předpokládejme, že máte řetězec „New York“ a pokud chcete z pravé strany extrahovat 3 znaky, postupujte podle následujících kroků a napište kód.

Krok 1: Deklarujte proměnnou jako řetězec VBA.

Kód:

 Sub Right_Example1 () Dim k As String End Sub 

Krok 2: Nyní této proměnné přiřadíme hodnotu pomocí funkce RIGHT.

Kód:

 Sub Right_Example1 () Dim k As String k = Right (End Sub 

Krok 3: První  argument je řetězec a náš řetězec pro tento příklad je „New York“.

Kód:

 Sub Right_Example1 () Dim k As String k = Right ("New York", End Sub 

Krok 4: Další krok je, kolik znaků potřebujeme z dodaného řetězce. V tomto příkladu potřebujeme 3 znaky.

Kód:

 Sub Right_Example1 () Dim k As String k = Right ("New York", 3) End Sub 

Krok 5: Musíme se vypořádat se 2 argumenty, takže jsme hotoví. Nyní přiřaďte hodnotu této proměnné do pole se zprávou ve VBA.

Kód:

 Sub Right_Example1 () Dim k As String k = Right ("New York", 3) MsgBox k End Sub 

Spusťte kód pomocí klávesy F5 nebo ručně a zobrazte výsledek v okně se zprávou.

Ve slově „New York“ z pravé strany jsou 3 znaky „ork“.

Nyní změním délku ze 3 na 4, abych získal plnou hodnotu.

Kód:

 Sub Right_Example1 () Dim k As String k = Right ("New York", 4) MsgBox k End Sub 

Spusťte tento kód ručně nebo pomocí klávesy F5, dostaneme „York“.

Příklad č. 2

Nyní se podívejte na další příklad, tentokrát považujte hodnotu řetězce za „Michael Clarke“.

Pokud zadáte délku 6, dostaneme jako výsledek „Clarke“.

Kód:

 Sub Right_Example1 () Dim k As String k = Right ("Michael Clarke", 6) MsgBox k End Sub 

Spusťte tento kód pomocí klávesy F5 nebo ručně, abyste viděli výsledek.

Funkce Dynamic Right v aplikaci Excel VBA

Pokud sledujete naše předchozí dva příklady, zadali jsme čísla argumentů délky ručně. To však není správný postup pro provedení této práce.

V každém z řetězců jsou znaky na pravé straně v každém případě odlišné. Nemůžeme odkazovat na délku znaků ručně pro každou hodnotu jinak. Zde hraje důležitou roli další funkce řetězce „Instr“.

Funkce Instr vrací pozici zadaného znaku v hodnotě zadaného řetězce. Například Instr (1, „Bangalore“, „a“) vrací pozici písmene „a“ v řetězci „Bangalore“ od prvního (1) znaku.

V tomto případě je výsledek 2, protože od polohy prvního znaku písmene „a“ je 2. pozice.

Pokud změním výchozí pozici z 1 na 3, vrátí se 5.

Instr (3, „Bangalore“, „a“) .

Důvod, proč se vrací 5, protože jsem zmínil výchozí pozici hledat písmeno „a“ až od 3. písmene. Pozice druhého „a“ je tedy 5.

Takže k vyhledání znaku mezery každého řetězce můžeme použít toto. Jakmile najdeme pozici mezerového znaku, musíme ji pomocí LEN mínus z celkové délky řetězce.

Například v řetězci „New York“ je celkový počet znaků 8 včetně mezery a pozice mezery je 4.. Takže 8-4 = 4 vpravo extrahuje 4 znaky zprava.

Nyní se podívejte na níže uvedený kód, který slouží jako reference.

Kód:

 Sub Right_Example3 () Dim k As String Dim L As String Dim S As String L = Len ("Michael Clarke") S = InStr (1, "Michael Clarke", "") k = Right ("Michael Clarke", L - S) MsgBox k End Sub 

Ve výše uvedeném kódu proměnná „L“ vrátí 14 a proměnná „S“ vrátí 8.

V pravém vzorci VBA jsem použil L - S, tj. 14-8 = 6. Takže z pravé strany 6 znaků, tj. „Clarke“.

Smyčky se správnou funkcí v aplikaci Excel VBA

Když potřebujeme použít funkci VBA RIGHT s mnoha buňkami, musíme to zahrnout do smyček. Podívejte se například na obrázek níže.

Nemůžeme použít mnoho řádků kódu k extrahování řetězce z pravé strany. Musíme tedy zahrnout smyčky. Níže uvedený kód to udělá pro výše uvedená data.

Kód:

 Sub Right_Example4 () Dim k As String Dim L As String Dim S As String Dim a As Integer For a = 2 To 5 L = Len (Cells (a, 1) .Value) S = InStr (1, Cells (a, 1 ) .Value, "") Buňky (a, 2) .Value = Right (Buňky (a, 1), L - S) Další a End Sub 

Výsledek tohoto kódu je následující.


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