Kaj je Call Sub v VBA?
Vse podprocedure istega modula lahko izvedemo v eni podprogrami in postopek njihovega izvajanja v eni podprogrami VBA, imenovani »Call Sub«.
V nekaterih primerih bomo morda morali napisati ogromno kode in pisanje le-teh v en makro ustvari veliko težav med razhroščevanjem kode. Na začetku vsi to počnejo zgolj zaradi pomanjkanja znanja o metodi »Call Sub«.
Ni dobra praksa, da se vse kode hranijo v enem samem postopku. Za poenostavitev kode jih moramo razbiti na več podprocedurov.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba_.png.webp)
Kako poklicati podprogram v Excelu VBA?
Izvajanje makra excel iz enega postopka v drugega olajša življenje zgolj na podlagi prihranka veliko časa med izvajanjem in med odpravljanjem napak kode v primeru kakršne koli napake.
Koda:
Sub Code_1 () Obseg ("A1"). Value = "Hello" End Sub Sub Code_2 () Obseg ("A1"). Interior.Color = rgbAquamarine End Sub
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__2.png.webp)
Na zgornji sliki imamo dva podprocedura. Prva je »Code_1«, druga pa »Code_2«.
V prvi podkodi klica VBA sem pravkar napisal kodo, da v celico A1 vstavim vrednost kot »Hello«. V drugem podprocedu sem napisal kodo, s katero spremenim notranjo barvo celice A1 v »rgbAquamarine«.
Zdaj bom zagnal prvo kodo, tj. »Code_1«.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba_.gif)
Zdaj bom zagnal drugo kodo, tj. »Code_2«.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__2.gif)
Tukaj sem izvedel kodo.
Z uporabo VBA »call sub« lahko izvedemo oba podprocedura samo v enem makru. Dodati moramo samo besedo »Pokliči«, ki ji sledi ime makra.
Oglejte si spodnjo grafično sliko.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__3.png.webp)
Kodo sem omenil kot »Klicna koda_2« samo v prvem postopku. Zdaj, da bi razumeli, zaženimo kodo vrstico za vrstico. Pritisnite tipko F8. Označil bo ime makra.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__4.png.webp)
Pritisnite tipko F8 še enkrat, da skoči na naslednjo vrstico.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__5.png.webp)
Rumena barva kaže, da bo označena koda kmalu izvedena, če še enkrat pritisnemo tipko F8. Pritisnite tipko F8.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__6.png.webp)
Kot lahko vidimo, je v celico A1 vstavil besedo »Hello«. Zdaj je označena vrstica »Call Code_2«.
“Call Code_2” ima nalogo spremeniti notranjo barvo celice A1, beseda “Call Code_2” pa bo to kodo izvedla samo iz dejanskega podprocedura.
Toda pritisnite tipko F8, da vidite čarobnost.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__7.png.webp)
Preskočil je na omenjeno ime podprocedure. Še enkrat pritisnite tipko F8.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__8.png.webp)
Zdaj je poudarjena dejanska vrstica opravil, da še enkrat pritisnete tipko F8.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__9.png.webp)
Tako lahko izvedemo številne podprocedure iz enega podprocedura tako, da podproceduro pokličemo z njihovim imenom z besedo »Pokliči«.
Opomba:
- Makro drugega podprocedura lahko izvedemo, ne da bi uporabili besedo »Pokliči«, ampak samo z omembo samega imena makra.
- To ni najboljša praksa, ker če postopek podmakra makro vsebuje oklepaje, ki jih želite izvesti, je beseda »Klic« obvezna.
- Po mojem osebnem mnenju vedno uporabljajte besedo »Call«, ker gre le za besedo s štirimi črkami, ki drugim omogoča, da pravilno razumejo kodo.