Úvod do Excel VBA Call Sub

Ve VBA máme funkci CALL, která se používá pro volání hodnot uložených v jiné podkategorii nebo proceduře Sub. Předpokládejme, že jsme kód napsali někde v sešitu, nyní při psaní jiného kódu potřebujeme stejný kód napsaný dříve. Takže namísto opětovného zápisu stejného kódu můžeme tento úplný kód nebo proceduru Sub zavolat do aktuální podkategorie nebo procedury Sub. Tím se můžete vyhnout tomu, aby se stejná činnost sešitu znovu a znovu opakovala.

Jak volat Sub v Excel VBA?

Níže jsou uvedeny různé příklady volání Sub v Excel VBA:

Tuto šablonu VBA Call Sub Excel si můžete stáhnout zde - VBA Call Sub Excel Template

Výzva k volání Excel VBA - příklad č. 1

Nejprve se podívejme na jediný příklad, kde VYZÝVÁME již napsanou podkategorii kódu nebo postup. K tomu potřebujeme modul.

Přejděte do okna VBA a pod možností Vložit nabídku klikněte na Modul, jak je ukázáno níže.

Poté dostaneme prázdnou stránku nebo okno modulu. Nyní v tom napište podkategorii kódu, který provádíme, nebo v jakémkoli jiném názvu, jak je ukázáno níže.

Kód:

 Dílčí volání () Konec Dílčí 

Nyní použijte příkaz v okně se zprávou a do textového pole napište text nebo slovo, které chcete vidět. Zde používáme „ První “, jak je ukázáno níže.

Kód:

 Sub Calling () MsgBox ("First") End Sub 

Nyní zkompilujte kód a spusťte jej kliknutím na tlačítko Přehrát, které je pod panelem nabídek. Uvidíme okno se zprávou obsahující zprávu „ První “, jak je uvedeno níže.

Nyní za konec ve stejném modulu napište další podkategorii nebo proceduru do jakéhokoli jména, jak je ukázáno níže.

Kód:

 Dílčí příjezd () Konec Dílčí 

V tom opět použijte příkaz MsgBox a dejte mu zprávu nebo text dle vašeho výběru. Zde jsme ji dali „ Druhé “, jak je ukázáno níže.

Kód:

 Sub Arriving () MsgBox ("Second") End Sub 

Nyní, když spustíme kompletní kód, dostaneme výstup pouze poslední podkategorie, což je okno se zprávou obsahující zprávu „ Second “, jak je ukázáno níže.

Přichází funkce CALL, kterou budeme používat k volání obou zpráv jeden po druhém. To bude použito v první podkategorii.

U tohoto typu Volat v první podkategorii před Koncem, následovanou názvem této podkategorie, jejíž kód chceme volat. Dále MsgBox používáme Call, následovaný Arriving, což je podkategorie názvu níže uvedeného kódu.

Kód:

 Sub Calling () MsgBox ("First") Call Arriving End Sub Sub Sub Arriving () MsgBox ("Second") End Sub 

Nyní sestavte celý kód od začátku do konce a spusťte jej. Uvidíme okno se zprávou s názvem „První“. Nyní klikněte na OK a pokračujte dále. Jakmile to uděláme, dostaneme druhé okno se zprávou obsahující zprávu „ Druhé “, jak je ukázáno níže. A pokud znovu kliknete na OK, bude to ukončeno.

Co když změníme pozici funkce volání z před koncem do za první podkategorií, jak je ukázáno níže? Nyní nechte znovu spustit kompletní kód.

Kód:

 Dílčí volání () Příchozí hovor MsgBox ("První") Konec Dílčí díl Příchozí () MsgBox ("Druhý") Konec Sub 

Objeví se zpráva uložená ve druhém podprocesu jako první, která je „ Second “ následovaná zprávou „ First “, když klikneme na OK, jak je ukázáno níže.

Takže je to všechno na nás, kterou proceduru nebo kategorii Sub chceme zavolat jako první.

Výzva k volání Excel VBA - příklad č. 2

Podívejme se na další příklad, ve kterém použijeme funkci Volat k volání jiné podkategorie. K tomu potřebujeme nový modul. Otevřete modul z nabídky Vložit. A dává podkategorii v jakémkoli názvu, jak je ukázáno níže.

Kód:

 Sub VBACall () End Sub 

Definujte 3 proměnné Num1, Num2 a Ans1 v DIM a poté přiřaďte pomocí Long . Můžeme také použít celé číslo nebo dvojité, v závislosti na něčem použití. Dlouhé nám umožní zvážit jakoukoli délku čísla.

Kód:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long End Sub 

Nyní zadejte Num1 a Num2 libovolné číslo podle vašeho výběru. Dali jsme jim 100, respektive 50 . Zvažování 100 a 50 nám pomůže rychle identifikovat výstup.

Kód:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 End Sub 

Nyní použijte multiplikační vzorec k znásobení počtu čísel v Num1 a Num2 a uložení jejich odpovědi do proměnné Ans1, jak je ukázáno níže.

Kód:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub 

V dalším řádku kódu použijeme objekt VBA. Za tímto účelem vyberte list s příkazem Pracovní list a zadejte mu rozsah libovolné buňky. Buňku rozsahu jsme vybrali jako B1. A konečně vytiskněte výsledek s jakýmkoli jménem, ​​jako je výsledek nebo odpověď, jak je uvedeno níže.

Kód:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Worksheet (1) .Range ("B1"). Hodnota = "Answer" End Sub 

Nyní mu dejte místo, kde chceme vidět odpověď stejným způsobem, jak je uvedeno výše. Zde vybereme buňku C1 jako výstupní buňku a zde vložíme poslední proměnnou Ans1 .

Kód:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Worksheet (1) .Range ("B1"). Hodnota = "Answer" Worksheet (1) .Range ("C1"). Hodnota = Ans1 End Sub 

Nyní spusťte kód. V buňce C1 uvidíme výsledek násobení.

Zápis další podkategorie pod stejným kódem po End.

Kód:

 Sub VBACall2 () End Sub 

Znovu definujte 3 proměnné Num3, Num4 a Ans2 v DIM a poté přiřaďte pomocí Long.

Kód:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long End Sub 

Dejte Num3 a Num4 stejné hodnoty jako 100 a 50 a přidejte obě čísla.

Kód:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 End Sub 

Nyní použijte objekt VBA podobným způsobem, jaký byl použit výše, a poté zadejte buňku rozsahu jako B2 pro odpověď a C2 pro výstup Ans2 .

Kód:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Worksheet (1) .Range ("B2"). Hodnota = "Answer" Worksheet (1) .Range ("C2"). Hodnota = Ans2 End Sub 

Chcete-li volat oba výsledky jeden po druhém, použijte funkci Volat, která mu dá jméno 2. podskupiny, jak je ukázáno níže.

Kód:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Worksheet (1) .Range ("B1"). Hodnota = "Answer" Worksheet (1) .Range ("C1"). Hodnota = Ans1 volání VBACall2 End Sub Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Worksheet (1) .Range ("B2" ). Hodnota = "Odpovědi" Pracovní listy (1) .Range ("C2"). Hodnota = Ans2 End Sub 

Nyní zkompilujte celý kód a spusťte. Budeme první v buňce C2, dostaneme výsledek násobení a v buňce C3 výsledek sčítání.

Abychom věděli správnou posloupnost, můžeme použít příkaz MsgBox, jak je použit v příkladu 1, a zjistit, které hodnoty volaly v jaké posloupnosti.

Výhody aplikace Excel VBA Call Sub

  • VBA Call Sub šetří čas při psaní stejného kódu znovu a znovu.
  • Voláním úložiště dílčích procedur VBA ve stejném Excelu se také zmenší velikost souboru Excel.

Co si pamatovat

  • Pomocí pole zprávy pro účely testování můžete vidět sekvenční běh více kódů.
  • Kompilujte větší řádky kódu stisknutím klávesy F8, abyste mohli identifikovat chybovou část.
  • Uložte soubor ve formátu Macro Enable Excel, abyste zachovali zapsaný kód.
  • Pomocí CALL před End se nejprve spustí první kód a po prvním Subprocedure se spustí druhý kód jako první.

Doporučené články

Toto je průvodce VBA Call Sub. Zde diskutujeme o tom, jak zavolat Sub v Excelu VBA spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. VBA do smyčky
  2. SUBTOTAL Formula v Excelu
  3. VBA, zatímco smyčka
  4. Funkce podstrčení Excel

Kategorie: