Excel VBA ByRef és ByVal - Egyszerű Excel makrók

Tartalomjegyzék

Érveket adhat át egy eljárásnak (függvény vagy al) hivatkozással vagy érték szerint. Alapértelmezés szerint, Excel VBA hivatkozással adja át az érveket. Mint mindig, egy egyszerű példát fogunk használni, hogy világosabbá tegyük a dolgokat.

Helyezzen el egy parancsgombot a munkalapon, és adja hozzá a következő kódsorokat:

Dim x Mint egész
x = 10
MsgBox Triple (x)
MsgBox x

A kód a Triple függvényt hívja meg. Ez a második MsgBox eredménye, amely minket érdekel. A funkciókat be kell helyezni egy modulba.

1. Nyissa meg a Visual Basic Editor programot, és kattintson a Beszúrás, Modul elemre.

2. Adja hozzá a következő kódsorokat:

Funkció Triple (ByRef x As Integer) Egész számként
x = x * 3
Hármas = x
Vége funkció

Eredmény, ha rákattint a parancsikonra a lapon:

3. Cserélje ki a ByRef -et ByVal -ra.

Funkció Triple (ByVal x As Integer) Egész számként
x = x * 3
Hármas = x
Vége funkció

Eredmény, ha rákattint a parancsikonra a lapon:

Magyarázat: Amikor az érveket hivatkozás útján továbbítjuk, az eredeti értékre hivatkozunk. Az x értéke (az eredeti érték) megváltozik a függvényben. Ennek eredményeként a második MsgBox 30. értéket jelenít meg. Amikor argumentumokat adunk át érték szerint, akkor másolatot adunk át a függvénynek. Az eredeti érték nem változik. Ennek eredményeként a második MsgBox 10 értéket jelenít meg (az eredeti érték).

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave