Sadržaj
U ovom ću vam članku pokazati kako možete pozvati Sub iz druge Sub ili funkcije u VBA u Excel . Naučit ćete pozvati Sub sa ili bez argumenata, kao i Public i Private Subs .
Kako pozvati Sub u VBA u Excelu (Brzi pregled)
Napomena: Ovdje se Sub zove Sub2 poziva Sub koji se zove Sub1 .
Preuzmi radnu bilježnicu za vježbanje
VBA Call Sub.xlsm
Preuzmite ovu praktičnu knjigu kako biste vježbali zadatak dok čitate ovaj članak.
4 načina pozivanja Sub u VBA u Excel
Ovdje imamo Sub u VBA pod nazivom Sub1 .
Ako pokrenete Sub1 , dobit ćete poruku “Sub1 is Run.”
Danas naš cilj je naučiti kako možemo nazvati ovaj Sub iz drugog Sub ili Function na sve moguće načine.
1. Pozovite Sub bez argumenata iz drugog Sub u VBA u Excelu
Prvo ćemo pozvati Sub bez ikakvih argumenata iz drugog Sub u VBA .
Ovdje, Sub1 je Sub bez argumenata.
Sada ćemo nazvati Sub Sub1 iz drugog Sub koji se zove Sub2 .
Da biste pozvali Sub Sub1 iz drugog Sub , morate koristiti redak koda:
Sub1
Ili
Call Sub1
Sada ako pokrenete Sub2 ,Pozvat će se Sub1 i prikazati će se poruka “Sub1 is Run.” .
2. Pozovite Sub s argumentima iz drugog Sub u VBA u Excelu
Sada ćemo pozvati Sub s argumentima iz drugog Sub u VBA .
Ovdje smo promijenili Sub Sub1 na takav način da sadrži argument pod nazivom Input_Value , a kada pokrenuti, prikazuje taj argument.
Za poziv ovog Sub iz drugog Sub ( Sub2 ), moramo upotrijebiti redak koda:
Sub1(Input_Value)
Ili
Call Sub1(Input_Value)
Ovdje smo upotrijebili:
Call Sub1(10)
Sada, kada pokrenemo Sub2 , Sub1 bit će pozvan s unosom 10 , a 10 bit će prikazano u Okvir za poruke .
Slična čitanja:
- Kako vratiti vrijednost u funkciji VBA (i vrijednosti niza i vrijednosti koje nisu nizovi)
- Koristite funkciju LCase u VBA u Excelu (s 4 primjera)
- Kako Koristite VBA SPLIT funkciju u Excelu (5 primjera)
- Koristite TRIM funkciju u VBA u Excelu (Definicija + VBA kod)
3. Pozovite Sub s/bez argumenata iz Korisnički definirane funkcije u VBA u Excelu
Također možete pozvati Sub iz Korisnički definirane funkcije u VBA .
⧭ Sub bez argumenata
Pozovimo prvo Sub bez argumenata .
Opet smo se promijenili Sub Sub1 na onaj bez argumenata.
Sada ćemo stvoriti Funkciju pod nazivom Function1 i pozovite Sub1 iz te funkcije.
Da biste pozvali Sub iz funkcije, linija koda koja se koristi je ista :
Sub1
Ili
Call Sub1
Sada, ako umetnete Function1 u bilo koju ćeliju vašeg radnog lista, Sub1 će biti pozvan i Okvir za poruke prikazat će “Sub1 is Run.” .
⧭ Sub with Arguments
Također možete pozvati Sub s argumentima iz Korisnički definirane funkcije u VBA u Excelu .
Ovdje smo ponovno promijenili Sub1 u onaj s argumentima.
Sada smo pozvali Sub1 iz Funkcija1 retkom koda:
Call Sub1(10)
Sada ako umetnemo Funkcija1 u bilo kojoj ćeliji našeg radnog lista prikazat će 10 u Okviru za poruke .
4. Pozovite privatni Sub iz drugog Sub ili funkcije u VBA u Excelu
Do sada smo pozivali Public Sub iz drugog Sub ili Funkcija . Ovaj put ćemo pokazati kako možete pozvati Private Sub iz druge Sub ili Function u VBA .
⧭ Pozivanje s pretplatnika:
Možete nazvati privatnog podspremnika samo s drugog podnaslova ako dva su u istom modulu vašeg VBA prozora.
Ovdjepromijenili smo Sub1 u Private Sub dodavanjem pojma Private u prvi redak. I pozvao ga iz Sub2 koji je u istom modulu.
Sada ako pokrenete Sub2 , dobit ćete Okvir s porukom koji prikazuje 10 .
⧭ Pozivanje iz funkcije:
Isto za funkcije. Za pozivanje privatnog pod iz funkcije u VBA , pod i funkcija moraju biti u isti modul.
Ovdje smo umetnuli Private Sub Sub1 i Function Function1 u isti modul.
Sada ako umetnemo Function1 u bilo koju ćeliju našeg radnog lista, Okvir za poruke prikazat će 10 .
Sažetak
Ovo je sažetak svih točaka o kojima se danas raspravljalo:
- Možete nazvati Sub iz druge Sub ili Korisnički definirane funkcije u VBA korištenjem izraza “Poziv” s imenom od Sub , ili jednostavno stavite naziv Sub .
- Ako Sub koji se poziva sadrži argument , morate pozvati Sub s bilo kojom vrijednošću tog argumenta .
- Ako je Sub koji se poziva deklariran kao Privatni jedan, morate ga pozvati iz drugog Pod ili Funkcije istog modula.
Zaključak
Koristeći ove metode, možete pozvati Pod iz druge Pod ili Funkcije u VBA u Excelu. Imate li kakvih pitanja? Slobodno nas pitajte.