Hướng dẫn byVal truyền tham chiếu và giá trị trong VBA
Ví dụ 1: có sử dụng ByRef VBA
Private Sub Command0_Click()
Dim so As Integer
so = 50
MsgBox so ' gia tri ban dau
CongThem so
MsgBox so ' dòng *
End Sub
Sub CongThem(ByRef k As Integer)
k = k + 10
End Sub
* Thông thường thì ' dòng * sẽ in là 50, nhưng khi có byRef biến số được + 10 vì ByRef đã tham chiếu biến thay đổi giá trị
Ví dụ 2: có sử dụng ByVal VBA
Private Sub Command0_Click()
Dim so As Integer
so = 50
MsgBox so ' gia tri ban dau
CongThem so
MsgBox so ' dòng *
End Sub
Sub CongThem(ByVal k As Integer)
k = k + 10
End Sub
Kết quả là 50 chứ không giúp ví dụ 1, suy ra là khi gọi hàm hay thủ tục cần thay đổi giá trị biến truyền vào hãy sử dụng byRef