Що таке ByRef у VBA?

Byref в VBA означає "Довідково". За допомогою VBA Byref ми можемо орієнтуватися на вихідне значення, не змінюючи значення, що зберігається у змінних. Іншими словами, ми будемо безпосередньо передавати значення Sub процедурам, а не проходити звичайні методи визначення та присвоєння значень змінним.

У VBA ByRef ми визначаємо під-процедуру після того, як встановимо правило для ByRef. Це можна зробити нижче підпроцедури, де ми хочемо написати код. У ByRef ми переосмислюємо змінну, яка використовується в процедурі Sub. І це працює належним чином лише тоді, коли ми називаємо умовою ByRef у нашому підпроцедурі.

Як використовувати функцію ByRef в Excel VBA?

Нижче наведено різні приклади використання функції ByRef в Excel з використанням коду VBA.

Ви можете завантажити цей шаблон VBA ByRef Excel тут - Шаблон VBA ByRef Excel

Excel 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, який можна завантажити. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Посібник з функції UBA UBound
  2. OFFSET Excel Функція (Приклад, Використання)
  3. Створіть гіперпосилання в Excel VBA
  4. Як користуватися Excel Fill Handle?

Категорія: