VBA - Връща стойност от подпроцедура

Този урок ще ви научи как да върнете стойност от подпроцедура във 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

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave