Какво е Call Sub във VBA?
Можем да изпълним всички подпроцедури на един и същ модул в една подпрограма и процеса на изпълнението им в една подпрограма на VBA, наречена „Call Sub“.
В някои от случаите може да се наложи да напишем огромно количество код и записването им в един макрос създава много проблеми при отстраняване на грешки в кода. В началото всички са склонни да правят това чисто поради липсата на познания по метода „Call Sub“.
Не е добра практика да се съхраняват всички кодове в една подпроцедура. Трябва да ги разделим на множество подпроцедури, за да опростим кода.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba_.png.webp)
Как да се обадя на подпрограма в Excel VBA?
Изпълнението на макроса на Excel от една процедура в друга улеснява живота само въз основа на спестяване на много време, докато се изпълнява, както и докато отстранява грешки в кода в случай на грешка.
Код:
Подкод_1 () Обхват ("A1"). Стойност = "Здравейте" Край Подкод_2 () Обхват ("A1"). Вътрешен.Цвят = rgbAquamarine Краен под
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__2.png.webp)
В горното изображение имаме два подпроцедури. Първият е „Код_1“, а вторият е „Код_2“.
В първия подкод за повикване на VBA току-що написах код, за да вмъкна стойност в клетка А1 като „Здравейте“. Във втората подпроцедура написах кода за промяна на вътрешния цвят на клетка А1 на „rgbAquamarine“.
Сега ще стартирам първия код, т.е. „Code_1”.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba_.gif)
Сега ще стартирам втория код, т.е. “Code_2”.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__2.gif)
Тук съм изпълнил кода пъти.
Използвайки VBA „call sub“, можем да изпълним и двете подпроцедури само в един макрос. Трябва само да добавим думата „Call“, последвана от име на макрос.
Погледнете графичната снимка по-долу.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__3.png.webp)
Споменах кода като „Call Code_2” само в първата подпроцедура. Сега, за да разберем, нека пуснем кода ред по ред. Натиснете клавиша F8. Той ще подчертае името на макроса.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__4.png.webp)
Натиснете клавиша F8 още веднъж, за да премине към следващия ред.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__5.png.webp)
Жълтият ред показва маркирания код, който е на път да се изпълни, ако натиснем клавиша F8 още веднъж. Натиснете клавиша F8 сега.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__6.png.webp)
Както виждаме, той е вмъкнал думата „Hello“ в клетката A1. Сега е подчертана линията „Call Code_2”.
“Call Code_2” има за задача да промени вътрешния цвят на клетка A1 и думата “Call Code_2” ще изпълни този код само от действителната подпроцедура.
Но натиснете клавиша F8, за да видите магията.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__7.png.webp)
Той е преминал към споменатото име на подпроцедура. Натиснете клавиша F8 още веднъж.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__8.png.webp)
Сега е подчертан действителният ред на задачите, за да изпълните този натиснете клавиша F8 още веднъж.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__9.png.webp)
По този начин можем да изпълним много подпроцедури от една подпроцедура, като извикаме подпроцедурата по тяхно име с думата „Call“.
Забележка:
- Можем да изпълним макроса на друга подпроцедура, без да използваме думата „Call“, а само като споменем самото име на макроса.
- Това не е най-добрата практика, защото ако подпроцедурата на макроса съдържа скоби, които искате да изпълните, тогава думата „Call“ е задължителна.
- По мое лично мнение винаги използвайте думата „Call“, защото това е просто дума от 4 букви, която позволява на другите да разберат правилно кода.