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 MID

Pří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.