Excel VBA ByRef ו- ByVal - פקודות מאקרו קלות של Excel

תוכן העניינים

אתה יכול להעביר ארגומנטים לנוהל (פונקציה או תת) בהתייחסות אוֹ לפי ערך. כברירת מחדל, Excel VBA מעביר טיעונים בהתייחסות. כמו תמיד, נשתמש בדוגמא קלה כדי להבהיר את העניינים.

מקם כפתור פקודה בגליון העבודה שלך והוסף את שורות הקוד הבאות:

Dim x כמספר שלם
x = 10
MsgBox Triple (x)
MsgBox x

הקוד מכנה את הפונקציה טריפל. זוהי התוצאה של ה- MsgBox השני בו אנו מעוניינים. יש להכניס פונקציות למודול.

1. פתח את עורך Visual Basic ולחץ על הוספה, מודול.

2. הוסף את שורות הקוד הבאות:

פונקציה משולשת (ByRef x כמספר שלם) כמכלול שלם
x = x * 3
משולש = x
פונקציית סיום

התוצאה כאשר אתה לוחץ על כפתור הפקודה בגיליון:

3. החלף את ByRef ב- ByVal.

פונקציה משולשת (ByVal x כמספר שלם) כמכלול שלם
x = x * 3
משולש = x
פונקציית סיום

התוצאה כאשר אתה לוחץ על כפתור הפקודה בגיליון:

הסבר: בעת העברת טיעונים בהפניה אנו מתייחסים לערך המקורי. הערך של x (הערך המקורי) משתנה בפונקציה. כתוצאה מכך ה- MsgBox השני מציג ערך של 30. כאשר מעבירים ארגומנטים לפי ערך אנו מעבירים עותק לפונקציה. הערך המקורי אינו משתנה. כתוצאה מכך ה- MsgBox השני מציג ערך של 10 (הערך המקורי).

תוכל לעזור בפיתוח האתר, שיתוף הדף עם החברים שלך

wave wave wave wave wave