Sadržaj
U ovom članku ću vam pokazati kako možete pozvati Sub iz drugog Sub ili Function u VBA u Excel . Naučit ćete pozvati Sub sa ili bez argumenata, kao i Javni i Privatni Subs .
Kako pozvati sub u VBA u Excelu (brzi pregled)
Napomena: Ovdje pod pod nazivom Sub2 poziva Sub nazvan Sub1 .
Preuzmi radnu svesku za vježbe
VBA Call Sub.xlsm
Preuzmite ovu vježbu da biste vježbali zadatak dok čitate ovaj članak.
4 načina da pozovete sub u VBA u Excel
Ovdje imamo Sub u VBA pod nazivom Sub1 .
Ako pokrenete Sub1 , dobit ćete poruku "Sub1 je pokrenut."
Danas naš cilj je naučiti kako možemo nazvati ovo Sub iz druge Sub ili Function na sve moguće načine.
1. Pozovite pod bez argumenata iz drugog podpodloga u VBA u programu Excel
Prvo, pozvaćemo pod bez ikakvog argumenta iz drugog pod u VBA .
Ovdje, Sub1 je Sub bez argumenata.
Sada ćemo zvati Sub Sub1 od drugog Sub zvanog Sub2 .
Da biste pozvali Sub Sub1 iz drugog Sub , morate da koristite liniju koda:
Sub1
Ili
Call Sub1
Sada ako pokrenete Sub2 , Sub1 će biti pozvan i poruka “Sub1 is Run.” će biti prikazana.
2. Pozovite pod s argumentima iz drugog podpodloga u VBA u programu Excel
Sada ćemo pozvati pod s argumentima iz drugog pod u VBA .
Ovdje smo promijenili Sub Sub1 na takav način da sadrži argument pod nazivom Input_Value , a kada run, prikazuje taj argument.
Da pozovete ovaj Sub iz drugog Sub ( Sub2 ), moramo koristiti liniju koda:
Sub1(Input_Value)
Ili
Call Sub1(Input_Value)
Ovdje smo koristili:
Call Sub1(10)
Sada, kada pokrenemo Sub2 , Sub1 će biti pozvan sa ulazom 10 , a 10 će biti prikazan u Kutija za poruke .
Slična očitanja:
- Kako vratiti vrijednost u VBA funkciji (i vrijednosti niza i vrijednosti koje nisu niz)
- Koristite funkciju LCase u VBA u Excelu (sa 4 primjera)
- Kako Koristite VBA SPLIT funkciju u Excelu (5 primjera)
- Koristite funkciju TRIM u VBA u Excelu (Definicija + VBA kod)
3. Pozvati sub sa/bez argumenata iz korisnički definirane funkcije u VBA u Excelu
Možete pozvati i pod iz korisnički definirane funkcije u VBA .
⧭ Sub bez argumenata
Pozovimo prvo Sub bez argumenata .
Opet smo se promijenili Sub Sub1 na onu bez argumenata.
Sada ćemo kreirati Function tzv. Funkcija1 i pozovite Sub1 iz te funkcije.
Da biste pozvali Sub iz funkcije, red koda koji se koristi je isti :
Sub1
Ili
Call Sub1
Sada, ako umetnete Funkcija1 u bilo koju ćeliju vašeg radnog lista, Sub1 će biti pozvan i Boks za poruke će prikazati “Sub1 je pokrenut.” .
⧭ Sub s argumentima
Također možete pozvati Sub s argumentima iz korisnički definirane funkcije u VBA u Excel .
Ovdje smo ponovo promijenili Sub1 u onaj s argumentima.
Sada smo pozvali Sub1 iz Funkcija1 po redu koda:
Call Sub1(10)
Sada ako ubacimo Function1 u bilo kojoj ćeliji našeg radnog lista, prikazat će 10 u Message Box .
4. Pozivanje privatnog sub-a iz drugog pod ili funkcije u VBA u programu Excel
Do sada smo zvali javni sub iz drugog pod ili Funkcija . Ovaj put ćemo pokazati kako možete pozvati Privatni pod iz drugog Sub ili funkcije u VBA .
⧭ Pozivanje sa sub:
Možete pozvati privatni sub samo iz drugog pod ako oni dva su u istom modulu vašeg VBA prozora.
Ovdjepromijenili smo Sub1 u Private Sub dodavanjem termina Private u prvom redu. I nazvao ga iz Sub2 koji je u istom modulu.
Sada ako pokrenete Sub2 , dobit ćete Okvir za poruke koji prikazuje 10 .
⧭ Pozivanje iz funkcije:
Isto za funkcije. Da biste pozvali Private Sub iz Function u VBA , Sub i Function moraju biti u isti modul.
Ovdje smo ubacili Private Sub Sub1 i Function Function1 u isti modul.
Sada ako ubacimo Funkcija1 u bilo koju ćeliju našeg radnog lista, Poruka okvir će prikazati 10 .
Sažetak
Ovde je sažetak svih tačaka o kojima se danas raspravlja:
- Možete pozvati Sub iz druge Sub ili korisnički definirane funkcije u VBA korištenjem termina “Call” s imenom od Sub , ili jednostavno stavljanje imena Sub .
- Ako Sub koji treba pozvati sadrži argument , morate pozvati Sub sa bilo kojom vrijednošću tog argumenta .
- Ako je Sub koji treba pozvati deklariran kao Privatni , morate ga pozvati iz drugog Sub ili Funkcije istog modula.
Zaključak
Upotrebom ovih metoda, možete pozvati Sub iz druge Sub ili Function u VBA u Excelu. Imate bilo kakvih pitanja? Slobodno nas pitajte.