Funkce VBA MID | Jak používat funkci Excel VBA MID?
Funkce Excel VBA MID
Funkce VBA MID extrahuje hodnoty ze středu zadané věty nebo slova. Funkce MID je kategorizována pod funkcí String a Text a jedná se o funkci listu, což znamená, že pro použití této funkce ve VBA musíme použít metodu application.worksheet.
Existují situace, kdy chceme extrahovat křestní jméno, příjmení nebo prostřední jméno. V takových situacích jsou vzorce kategorie TEXT užitečné ke splnění našich požadavků. Použití této funkce je stejné jako u odkazu na list a syntaxe je také stejná.
Syntax
Stejně jako naše funkce MID aplikace Excel má i ve VBA podobnou sadu hodnot syntaxe. Níže je uvedena syntaxe.
- Řetězec k vyhledávání: Není to nic jiného, než jaká je věta řetězce, tj. Ze kterého řetězce nebo slova chcete extrahovat hodnoty.
- Výchozí pozice: Z jaké pozice věty chcete extrahovat. Měla by to být číselná hodnota.
- Počet znaků k extrahování: Kolik znaků chcete z počáteční pozice extrahovat? Měla by to být také číselná hodnota.
Jak používat funkci VBA MID?
Tuto šablonu funkcí VBA MID si můžete stáhnout zde - Šablona funkcí VBA MIDPříklad č. 1
Předpokládejme, že máte slovo „Hello Good Morning“ a chcete z této věty vytáhnout „Good“. Podle následujících pokynů extrahujte hodnotu.
Krok 1: Nejprve vytvořte název makra.
Kód:
Sub MID_VBA_Example1 () End Sub
Krok 2: Deklarujte proměnnou jako „STRING“.
Kód:
Sub MID_VBA_Example1 () Dim MiddleValue jako řetězec End Sub
Krok 3: Nyní přiřaďte této proměnné hodnotu pomocí funkce MID.
Kód:
Sub MID_VBA_Example1 () Dim MiddleValue jako řetězec MiddleValue = Mid (End Sub
Krok 4: Prvním argumentem je řetězec, tj. Z jaké hodnoty chceme extrahovat. Naše hodnota je tedy „Hello Good Morning“.
Kód:
Sub MID_VBA_Example1 () Dim MiddleValue jako řetězec MiddleValue = Mid ("Hello Good Morning", End Sub
Krok 5: Další na řadě je, jaká je výchozí pozice postavy, kterou chcete extrahovat. V tomto případě začíná Dobré ráno od 7. postavy.
Poznámka: Mezera je také postava.
Kód:
Sub MID_VBA_Example1 () Dim MiddleValue jako řetězec MiddleValue = Mid ("Hello Good Morning", 7 End Sub
Krok 6: Délka není nic jiného než kolik znaků chcete extrahovat. Zde musíme extrahovat 4 znaky, protože délka slova „Dobrý“ je 4 znaky.
Kód:
Sub MID_VBA_Example1 () Dim MiddleValue jako řetězec MiddleValue = Mid ("Hello Good Morning", 7, 4) End Sub
Krok 7: Dokončili jsme vzorec. Ukážeme výsledek proměnné v okně se zprávou.
Kód:
Sub MID_VBA_Example1 () Dim MiddleValue jako řetězec MiddleValue = Mid ("Hello Good Morning", 7, 4) MsgBox MiddleValue End Sub
Krok 8: Nyní tento kód spusťte ručně nebo stiskněte klávesu F5, v okně se zprávou by se mělo zobrazit slovo „Dobrý“.
Výstup:
Příklad č. 2
Předpokládejme, že máte křestní jméno a příjmení dohromady a slovo je „Ramesh, Tendulkar“. Mezi jménem a příjmením je oddělovací znak čárka (,). Nyní musíme extrahovat pouze křestní jméno.
Krok 1: Vytvořte makro a definujte proměnnou.
Kód:
Sub MID_VBA_Example2 () Dim DimName jako řetězec End Sub
Krok 2: Nyní přiřaďte této proměnné hodnotu pomocí funkce MID.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid (End Sub
Krok 3: Náš řetězec je „Ramesh.Tendulkar“, zadejte tedy toto slovo.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", End Sub
Krok 4: Protože extrahujeme, počáteční pozice křestního jména je 1.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", 1, End Sub
Krok 5: Délka postavy, kterou můžete přímo zadat jako 6, ale to není nejlepší způsob. Aby bylo možné určit délku, můžeme použít ještě jeden vzorec s názvem Instr.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (End Sub
Krok 6: Pro tuto výchozí pozici je 1.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, End Sub
Krok 7: Řetězec 1 je naše jméno, tj. „Ramesh, Tendulkar“.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", End Sub
Krok 8: Řetězec 2, jaký je oddělovač křestního jména a příjmení, tj. Čárka (,).
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") End Sub
Poznámka: Funkce Instr vrátí, kolik znaků ve slově „Ramesh, Tendulkar“ je z pozice řetězce 1 do pozice řetězce 2, tj. Až do čárky (,). Takže Instr vrátí 7 jako výsledek včetně čárky (,).
Krok 9: Protože funkce Instr vrací číslo, znaků včetně čárky (,), musíme zde minus 1 znak. Po ukončení funkce Instr tedy zadejte -1.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") - 1) End Sub
Krok 10: Nyní zobrazte hodnotu proměnné v okně se zprávou.
Kód:
Sub MID_VBA_Example2 () Dim FirstName jako řetězec FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") - 1) MsgBox FirstName End Sub
Krok 11: Spusťte tento kód pomocí klávesy F5 nebo tento kód můžete spustit ručně, do pole se zprávou bychom dostali křestní jméno.
Výstup:
Příklad č. 3
Nyní vám zadám jedno zadání k vyřešení. Mám seznam křestního jména a příjmení.
Z tohoto seznamu chci, abyste extrahovali pouze křestní jméno. Vše nejlepší!!!!.
Dobře, pokud jste se pokusili a nedokážete získat výsledek, níže uvedený kód vám v tom pomůže.
Kód:
Sub MID_VBA_Example3 () Dim i As Long For i = 2 až 15 buněk (i, 2). Value = Mid (Cells (i, 1) .Value, 1, InStr (1, Cells (i, 1) .Value, " , ") - 1) Další i Konec Sub
Zkopírujte a vložte výše uvedený kód do svého modulu. Po zkopírování kódu spusťte tento kód pomocí klávesy F5 nebo můžete spustit ručně.
Mělo by to dát výsledek jako níže.
Věci k zapamatování
- Argument délka ve funkci MID je volitelný. Pokud to ignorujete, bude jako výchozí hodnota 1.
- K určení délky nebo výchozí polohy použijte funkci Instr spolu s funkcí MID.