Цей підручник навчить вас повертати значення з підпроцедури у VBA.
Підпроцедура не призначена для повернення значення - саме для цього використовується функціональна процедура. Однак може бути час, коли ви запускаєте деякий код у підпроцедурі, коли вам потрібно отримати значення з цієї підпроцедури. Це можна зробити за допомогою модульних або глобальних змінних або використання підпроцедури для заповнення аркуша Excel.
Використання змінних для повернення значення
Ви можете оголошувати змінні на рівні модуля. При цьому ці змінні можна використовувати будь -де в модулі, а змінні зберігають свої значення. Щоб оголосити змінну на рівні модуля, просто оголосіть змінну у верхній частині модуля коду:
123456789 | Опція явнаDim dblQty як DoubleПідтестA ()'зателефонуйте на підрозділ TestBВиклик TestB'показати значення змінної у вікні модуляНалагодження. Друк dblQtyEnd Sub |
1234 | Sub TestB ()'заповніть змінну модуляdblQty = 900End Sub |
Щоб об’єднати їх разом, ми б запустили TestA, який, у свою чергу, викликав би TestB і дав би нам значення 900 у найближчому вікні.
Це буде працювати тільки в межах модуля, оскільки змінна була оголошена за допомогою оператора Dim на рівні модуля.
Глобальна змінна
Ви можете оголосити змінну на глобальному рівні, щоб використовувати її у своїх модулях проекту.
Використання підпроцедури для заповнення аркуша Excel
Нижче описана підпроцедура безпосередньо заповнить діапазон від A1 до C1 у вашому аркуші Excel, таким чином повертаючи значення до клітинок із підпроцедури.
12345 | Sub PopulateRange ()Діапазон ("A1") = "Продукт"Діапазон ("B1") = "Кількість"Діапазон ("C1") = "Вартість"End Sub |
Потім ви можете посилатися на ці значення в іншій процедурі, посилаючись на значення комірки:
1234567 | Sub RetrieveRange ()Затемніть продукт як рядок, кількість - як довго, вартість - подвійноПродукт = діапазон ("A1")Кількість = діапазон ("B1")Вартість = діапазон ("C1")End Sub |