Що таке ByRef у VBA?
Byref в VBA означає "Довідково". За допомогою VBA Byref ми можемо орієнтуватися на вихідне значення, не змінюючи значення, що зберігається у змінних. Іншими словами, ми будемо безпосередньо передавати значення Sub процедурам, а не проходити звичайні методи визначення та присвоєння значень змінним.
У VBA ByRef ми визначаємо під-процедуру після того, як встановимо правило для ByRef. Це можна зробити нижче підпроцедури, де ми хочемо написати код. У ByRef ми переосмислюємо змінну, яка використовується в процедурі Sub. І це працює належним чином лише тоді, коли ми називаємо умовою ByRef у нашому підпроцедурі.
Як використовувати функцію ByRef в Excel VBA?
Нижче наведено різні приклади використання функції ByRef в Excel з використанням коду VBA.
Ви можете завантажити цей шаблон VBA ByRef Excel тут - Шаблон VBA ByRef ExcelExcel VBA ByRef - Приклад №1
Спочатку давайте навчимося вставляти ByRef у VBA, для цього виконайте наведені нижче кроки. У цьому прикладі ми побачимо, як використовувати VBA ByRef для простої роботи з математичним відніманням. Для цього нам знадобиться модуль.
Крок 1: Отже, перейдіть до VBA і відкрийте модуль з параметра меню Вставка, як показано нижче.
Крок 2. У щойно відкритий модуль запишіть підкатегорію VBA ByRef, як показано нижче.
Код:
Sub VBA_ByRef1 () Кінець Sub
Крок 3: Тепер визначимо змінну, скажімо, що це A як ціла кількість .
Код:
Sub VBA_ByRef1 () Dim A As Integer End Sub
Крок 4: Дайте будь-яке число змінній А. Нехай це число буде 1000.
Код:
Sub VBA_ByRef1 () Dim A As Integer A = 1000 End Sub
Крок 5: Для друку значення, збереженого у змінній A, ми використовували б Msgbox.
Код:
Sub VBA_ByRef1 () Dim A As Integer A = 1000 MsgBox A End Sub
Крок 6: Тепер ми компілюємо та запускаємо цей код, натискаючи на кнопку Відтворити, як показано нижче. Ми отримаємо вікно повідомлення зі значенням, збереженим у змінній A, як 1000 .
Тепер застосуйте VBA ByRef, створіть іншу підкатегорію нижче першої та призначте визначену змінну з першої підкатегорії за допомогою ByRef.
Крок 7: Цим ми дозволимо другій підкатегорії використовувати значення, збережені в змінній А.
Код:
Sub VBA_ByRef1 () Dim A As Integer A = 1000 MsgBox A End Sub Sub VBA_ByRef2 (ByRef A As Integer) End Sub
Крок 8: Тепер знову зателефонуйте до змінної A і відніміть будь-яке значення зі змінної A, щоб отримати вихідне значення в тій же змінній. Віднімемо 100 від значення змінної A, щоб ми отримали вимірюване число.
Код:
Sub VBA_ByRef1 () Dim A As Integer A = 1000 MsgBox A End Sub Sub VBA_ByRef2 (ByRef A As Integer) A = A - 100 End Sub
Крок 9: Тепер, якщо ми компілюємо кожен крок коду, ми помітимо, що коли курсор досяг змінної A, ми побачимо, що в ньому зберігається лише 0.
Крок 10: Коли курсор досяг кінця Sub, вихід у вікні повідомлення ми отримаємо як 1000.
Крок 11: Це тому, що ми не призначили ByRef до першої підкатегорії. Тепер ми призначимо ім’я підкатегорії перед функцією вікна повідомлення першої підкатегорії та подивимося, що буде.
Код:
Sub VBA_ByRef1 () Dim A As Integer A = 1000 VBA_ByRef2 A MsgBox A End Sub Sub VBA_ByRef2 (ByRef A As Integer) A = A - 100 End Sub
Крок 12: А тепер запустіть повний код ще раз. Ми побачимо, друге значення, яке зберігається у змінній A, як 100, віднімається від першого значення 1000. В результаті ми отримали вихідне повідомлення як 900.
Крок 13: Це головна перевага використання ByRef. Нам не потрібно визначати кілька змінних для одного завдання. Достатньо лише однієї змінної, щоб виконати ціле завдання різними способами. Ми можемо використовувати більше одного ByRef в одному модулі.
Для виправдання того, що ми зрозуміли, додамо ще один ByRef в той же Модуль.
Код:
Sub VBA_ByRef1 () Dim A As Integer A = 1000 VBA_ByRef2 A MsgBox A End Sub Sub VBA_ByRef2 (ByRef A As Integer) A = A - 100 End Sub Sub VBA_ByRef3 (ByRef A As In Integer) End Sub
Крок 14: У цій підкатегорії скористаємось множенням.
Код:
Sub VBA_ByRef1 () Dim A As Integer A = 1000 VBA_ByRef2 A MsgBox A End Sub Sub VBA_ByRef2 (ByRef A As Integer) A = A - 100 End Sub Sub VBA_ByRef3 (ByRef A As Integer) A = A * 2 End Sub
Крок 15: Знову компілюйте і запустіть код ще раз. Ми побачимо, що значення, отримане з вищезазначених етапів, оскільки 900 тепер множиться на 2, щоб отримати 1800 як вихід.
Excel VBA ByRef - Приклад №2
У цьому прикладі ми побачимо, як ByRef працює з іншими видами цілих чисел.
Крок 1. Відкрийте модуль і напишіть підкатегорію, як показано нижче.
Код:
Sub VBA_ByRef4 () Кінець Sub
Крок 2: Тепер визначте змінну A як подвійну. Це дозволить нам використовувати десяткові значення.
Код:
Sub VBA_ByRef4 () Dim A як подвійний кінець Sub
Крок 3: Призначте будь-яку десяткове значення змінній А.
Код:
Sub VBA_ByRef4 () Dim A як подвійний A = 1, 23 Кінець Sub
Крок 4: Тепер знову використовуйте поле повідомлення, щоб побачити значення, збережене в змінній А.
Код:
Sub VBA_ByRef4 () Dim A як подвійний A = 1, 23 MsgBox A End Sub
Тепер, якщо ми запустимо код, ми отримаємо 1, 23 як вихід.
Крок 5: По-іншому, ми будемо використовувати функцію для визначення ByRef як подвійного зі змінною A.
Код:
Sub VBA_ByRef4 () Dim A як подвійний A = 1, 23 MsgBox A End Sub функція AddTwo (ByRef A як подвійний) як функція подвійного кінця
Крок 6: Тепер додайте будь-яке число до змінної А. Скажімо, це 10.
Код:
Sub VBA_ByRef4 () Dim A як подвійний A = 1, 23 MsgBox A End Sub функція AddTwo (ByRef A як подвійний) як подвійний A = A + 10 кінцева функція
Крок 7: І знову використовуйте цю визначену функцію ByRef у першій підкатегорії. Тут ми побачимо два вікна повідомлення, одне для змінної A та інше для ByRef.
Код:
Sub VBA_ByRef4 () Dim A як подвійний A = 1, 23 MsgBox AddTwo (A) MsgBox A End Sub функція AddTwo (ByRef A як подвійний) як подвійний A = A + 10 кінцева функція
Крок 8: Те саме буде відображено і у вікні повідомлень.
Крок 9: А в наступному запуску він додасть значення 10 у вихідне значення змінної 1, 23, як показано нижче.
Ось так VBA Byref приймає посилання на значення, визначене один раз, а потім заповнює вихід відповідно до нової умови.
Плюси і мінуси VBA ByRef
- Писаючи великі коди, це економить багато часу, враховуючи вже визначену змінну, щоб її значення можна було використовувати знову і знову.
- Нам не потрібно визначати багато змінних відповідно до формули, яку ми хочемо застосувати.
- Ми можемо застосувати багато умов ByRef в одному модулі, навіть не порушуючи процес.
- Ми не можемо використовувати VBA Byref у складній структурі коду.
Що потрібно пам’ятати
- Якщо розглядати більш ніж одну умову ByRef, вихід буде базуватися на останньому визначеному нами підпорядку ByRef, але він також враховує всі використовувані раніше умови ByRef.
- Кінцевий вихід матиме послідовно оброблений вихід. Не тільки найновіший.
- Цей процес неможливо виконати, записавши макрос.
- Ми можемо побачити значення, що зберігаються на кожному етапі змінної, склавши код.
- Після цього збережіть файл excel як формат excel, який увімкнено макросом, щоб ми не втратили код у майбутньому.
Рекомендовані статті
Це путівник по VBA ByRef. Тут ми обговорюємо, як використовувати функцію ByRef в Excel, використовуючи код VBA разом з практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- Посібник з функції UBA UBound
- OFFSET Excel Функція (Приклад, Використання)
- Створіть гіперпосилання в Excel VBA
- Як користуватися Excel Fill Handle?