Този урок ще ви научи как да върнете стойност от подпроцедура във VBA.
Подпроцедурата не е предназначена да връща стойност - за това се използва функционална процедура. Въпреки това, може да има момент, в който изпълнявате някакъв код в подпроцедура, когато трябва да получите стойност от тази подпроцедура. Начинът да направите това е да използвате модулни или глобални променливи или да използвате подпроцедура за попълване на лист в Excel.
Използване на променливи за връщане на стойност
Можете да декларирате променливи на ниво модул. При това тези променливи могат да се използват навсякъде в модула и променливите запазват своите стойности. За да декларирате променлива на ниво модул, просто обявете променливата в горната част на вашия кодов модул:
123456789 | Опция ИзричноDim dblQty като DoubleSub TestA ()'обадете се на подстанцията TestBОбадете се на TestB'показва стойността на променливата в прозореца на модулаОтстраняване на грешки. Отпечатайте dblQtyEnd Sub |
1234 | Sub TestB ()'попълнете променливата на модулаdblQty = 900End Sub |
За да ги сглобим, ще стартираме TestA, който от своя страна ще извика TestB и ще ни даде стойността 900 в непосредствения прозорец.
Това ще работи само в рамките на модула, тъй като променливата е декларирана с помощта на оператора Dim на ниво модул.
Глобална променлива
Можете да декларирате променливата на глобално ниво, за да я използвате в своите модули на проекта.
Използване на подпроцедура за попълване на лист в Excel
Подпроцедурата по -долу ще директно ще попълни диапазон А1 до С1 във вашия лист на Excel, като по този начин ще върне стойностите в клетките от подпроцедурата.
12345 | Sub PopulateRange ()Range ("A1") = "Продукт"Диапазон ("B1") = "Количество"Range ("C1") = "Цена"End Sub |
След това можете да посочите тези стойности в друга процедура, като посочите стойностите на клетката:
1234567 | Sub RetrieveRange ()Затъмняване на продукта като низ, количество толкова дълго, цена като двойноПродукт = Обхват ("A1")Количество = Обхват ("B1")Цена = диапазон ("C1")End Sub |