Въведение в Excel VBA Call Sub
В VBA имаме функция като CALL, която се използва за извикване на стойностите, съхранени в друга подкатегория или под процедура. Да предположим, че сме написали код някъде в работна книга, сега докато пишем друг код, ни трябва същия код, написан по-рано. Така че вместо да пишем отново същия код, можем да извикаме този пълен код или под процедура в текущата Подкатегория или Под процедура. По този начин може да се избегне извършването на една и съща дейност на работна книга отново и отново.
Как да се обадя на Sub в Excel VBA?
По-долу са различните примери за извикване на Sub в Excel VBA:
Можете да изтеглите този шаблон на VBA Call Sub Excel тук - VBA Call Sub Excel шаблонExcel VBA Call Sub - Пример №1
Първо, нека да видим единичен пример, в който ще НАЗАДИМЕ вече написана кодова подкатегория или процедура. За това се нуждаем от модул.
Отидете на прозореца на VBA и под опцията Вмъкване на меню щракнете върху Модул, както е показано по-долу.
След това ще получим празна страница или прозорец на Модул. Сега в това напишете подкатегория код, която изпълняваме или в друго име, както е показано по-долу.
Код:
Sub Calling () Край Sub
Сега използвайте команда на полето за съобщения и въведете текст или дума, които искате да видите в полето за съобщения. Тук използваме „ Първо “, както е показано по-долу.
Код:
Sub Calling () MsgBox ("First") End Sub
Сега компилирайте кода и го стартирайте, като кликнете върху бутона Възпроизвеждане, който се намира под лентата на менюто. Ще видим поле със съобщение, съдържащо съобщението „ Първо “, както е показано по-долу.
Сега след края в същия модул напишете друга подкатегория или процедура в каквото и да е име, както е показано по-долу.
Код:
Пристигане на Sub () Край Sub
В това отново използвайте командата MsgBox и му давайте съобщение или текст според вашия избор. Тук сме го дали „ Втори “, както е показано по-долу.
Код:
Пристигане на Sub () MsgBox ("Втори") Край Sub
Сега ако пуснем пълния код, тогава ще получим изхода на само последната подкатегория, която е поле за съобщения, съдържащо съобщение „ Второ “, както е показано по-долу.
Тук идва функцията CALL, която ще използваме за извикване на двете съобщения едно по едно. Това ще бъде използвано в първата подкатегория.
За този тип Обадете се в първата подкатегория преди End, последвано от името на тази подкатегория, чийто код искаме да се обадим. Оттук нататък MsgBox използваме Call, последвано от Пристигане, което е името на подкатегорията на кода, написан по-долу.
Код:
Sub Calling () MsgBox ("First") End Arriving End Sub Sub Subriving () MsgBox ("Second") End Sub
Сега компилирайте пълния код от началото до края и го стартирайте. Ще видим полето със съобщение „Първо“. Сега кликнете върху ОК, за да продължите по-нататък. След като направим това, ще получим второто поле за съобщения, съдържащо съобщението „ Второ “, както е показано по-долу. И ако кликнете отново на Ок, тогава той ще излезе от процедурата.
Какво става, ако променим позицията на функцията за повикване от преди край до след първата подкатегория, както е показано по-долу? Сега нека пуснете пълния код отново.
Код:
Sub Calling () Пристигане на повикване MsgBox ("First") End Sub Sub Пристигане () MsgBox ("Second") End Sub
Той ще изскача съобщението, запаметено във втората подпроцедура първа, която е „ Втора “, последвана от съобщението „ Първо “, когато щракнем върху Ок, както е показано по-долу.
Така че всичко зависи от нас, коя Под процедура или категория искаме да се обадим първо.
Excel VBA Call Sub - Пример №2
Нека видим още един пример, в който ще използваме функция за обаждане, за да извикаме различна подкатегория. За това се нуждаем от нов модул. Отворете модул от менюто Вмъкване. И дава подкатегория във всяко име, както е показано по-долу.
Код:
Sub VBACall () Край Sub
Определете 3 променливи Num1, Num2 и Ans1 в DIM и присвойте след това с Long . Можем да използваме и Integer или Double, в зависимост от използването му. Long ще ни позволи да разгледаме всяка дължина на числото.
Код:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long End Sub
Сега дайте на Num1 и Num2 всяко число по ваш избор. Ние сме им дали съответно 100 и 50 . Имайки предвид 100 и 50 ще ни помогне да идентифицираме бързо продукцията.
Код:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 as Long Num1 = 100 Num2 = 50 End Sub
Сега използвайте формула за умножение, за да умножите запасите от числа в Num1 и Num2 и съхранявайте отговора им в променлива Ans1, както е показано по-долу.
Код:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 as Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub
В следващия ред код ще използваме VBA обекта. За това изберете листа с команда Работен лист и му дайте диапазон от всяка клетка. Избрахме клетката за диапазон като B1. И най-накрая отпечатайте резултата с всяко име като Резултат или Отговор, както е показано по-долу.
Код:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 работни листове (1) .Ранг ("B1"). Value = "Answer" End Sub
Сега му дайте мястото, където искаме да видим отговора по същия начин, както е показано по-горе. Тук избираме клетка C1 като изходна клетка и поставяме последната променлива Ans1 тук.
Код:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 as Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 работни листове (1) .Range ("B1"). Value = "Answer" Работни листове (1). ("C1") Стойност = Ans1 End Sub
Сега стартирайте кода. Ще видим резултат от умножение в клетка С1.
Писане на друга подкатегория под същия код след End.
Код:
Sub VBACall2 () End Sub
Отново дефинирайте 3 променливи Num3, Num4 и Ans2 в DIM и присвойте след това с Long.
Код:
Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long End Sub
Дайте на Num3 и Num4 същите стойности като 100 и 50 и добавете и двете числа.
Код:
Sub VBACall2 () Dim Num3 толкова дълъг dim Num4 толкова дълъг dim Ans2 колкото дълъг Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 край Sub
Сега използвайте VBA Object по подобен начин, както се използва по-горе и дайте след това диапазон клетка като B2 за отговор и C2 за извеждане на Ans2 .
Код:
Под VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 as Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 работни листове (1) .Range ("B2"). Value = "Answer" Работни листове (1). ("C2") Стойност = Ans2 End Sub
За да извикате и двата резултата един по един, използвайте функцията Call, която му дава името на 2- ра подкатегория, както е показано по-долу.
Код:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 as Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 работни листове (1) .Range ("B1"). Value = "Answer" Работни листове (1). ("C1"). Стойност = Ans1 обаждане VBACall2 край Sub Sub VBACall2 () Dim Num3 като дълъг dim Num4 като дълъг Dim Ans2 като дълъг Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 работни листове (1). Ранг ("B2" ) .Value = "Отговор" Работни листове (1) .Ранг ("C2"). Стойност = Ans2 End Sub
Сега компилирайте целия код и стартирайте. Ще бъдем първи в клетка С2, получихме резултата от умножението и в клетката С3, резултат от добавянето.
За да знаем правилната последователност, можем да използваме командата MsgBox, както се използва в Пример-1, и да видим кои стойности се наричат в каква последователност.
Плюсове на Excel VBA Call Sub
- VBA Call Sub спестява време за писане на един и същ код отново и отново.
- Обаждането в хранилището на подпроцедура VBA в същия excel също намалява размера на файла excel.
Неща, които трябва да запомните
- Използвайте полето за съобщения за тестова цел, за да видите последователното изпълнение на множество кодове.
- Компилирайте по-големите кодови редове, като натиснете клавиша F8, така че частта за грешка да бъде идентифицирана.
- Запишете файла във формат Macro Enable Excel, за да запазите написания код.
- Използването на CALL преди End ще стартира първия код първо, а след първата подпроцедура ще стартира втория код първо.
Препоръчителни статии
Това е ръководство за VBA Call Sub. Тук обсъждаме как да се обадите на Sub в Excel VBA, заедно с практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -
- VBA "До цикъл"
- SUBTOTAL Формула в Excel
- VBA Докато цикъл
- Функция Substring Excel