Excel VBA ByRef і ByVal - Прості макроси Excel

Зміст

Ви можете передавати аргументи процедурі (функції або підпрограм) за посиланням або за вартістю. За замовчуванням, Excel VBA передає аргументи за посиланням. Як завжди, ми будемо використовувати легкий приклад, щоб зробити речі більш зрозумілими.

Помістіть команду на робочому аркуші та додайте такі рядки коду:

Dim x як ціле число
x = 10
MsgBox Triple (x)
MsgBox x

Код викликає функцію Triple. Це результат другого MsgBox, який нас цікавить. Функції потрібно помістити в модуль.

1. Відкрийте редактор Visual Basic і натисніть Вставити, модуль.

2. Додайте такі рядки коду:

Функція Triple (ByRef x As Integer) As Integer
x = x * 3
Потрійний = x
Функція завершення

Результат, коли ви натискаєте кнопку команди на аркуші:

3. Замініть ByRef на ByVal.

Потрійна функція (ByVal x As Integer) As Integer
x = x * 3
Потрійний = x
Функція завершення

Результат, коли ви натискаєте кнопку команди на аркуші:

Пояснення: При передачі аргументів за допомогою посилання ми посилаємось на вихідне значення. Значення x (вихідне значення) змінюється у функції. В результаті другий MsgBox відображає значення 30. При передачі аргументів за значенням ми передаємо копію функції. Початкове значення не змінюється. В результаті другий MsgBox відображає значення 10 (початкове значення).

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave