Chào các bạn. Hôm nay tôi sẽ giới thiệu cho các bạn cách khai báo một đối số giản lược trong thủ tục và hàm của VBA.
Nếu bạn không chỉ định giá trị mặc định cho đối số, thì giá trị khởi tạo ban đầu sẽ phụ thuộc vào kiểu dữ liệu của biến số đó.
Chúng ta có thể khai báo các đối số optional ở phía cuối.
Nếu như bạn khai báo đối số Optional lên trên đầu thì không được. Ví dụ lỗi:
Bạn có thể sử dụng ByVal , ByRef . Nhưng không thể sử dụng ParamArray .
Ví dụ:
Ví dụ minh họa cho các bạn dễ hiểu:
Nguồn tham khảo:
Mã:
Sub TenThuTuc(Optional DoiSo As String = "GiaTriMacDinh")
End Sub
Mã:
Sub TenThuTuc(Optional DoiSo As String)
End Sub
Mã:
Sub TenThuTuc(DoiSo1 As Integer, Optional DoiSo2 As Integer = 2)
End Sub
Sub TenThuTuc(DoiSo1 As Integer, Optional DoiSo2 As Integer = 2, Optional DoiSo3 As Integer = 3)
End Sub
Nếu như bạn khai báo đối số Optional lên trên đầu thì không được. Ví dụ lỗi:
Mã:
' Không khai báo được như thế này nhé
Sub TenThuTuc(Optional DoiSo1 As Integer = 1, DoiSo2 As Integer)
End Sub
Ví dụ:
Mã:
Sub TenThuTuc(Optional ByVal DoiSo1 As Integer = 1, Optional ByRef DoiSo2 As Integer = 2)
End Sub
' Không được khai báo như thế này nhé
Sub TenThuTuc(Optional ParamArray DoiSo1() As Variant)
End Sub
Mã:
Sub THVBA()
Dim BienSo As Integer
BienSo = 2
Call vidu ' 1 Khi gian luoc thi gia tri mac dinh la 1
Call vidu(BienSo) '2 Khi truyen gia tri thi gia tri bay gio la 2
End Sub
' Thu tuc con
Sub vidu(Optional DoiSo As Integer = 1)
Debug.Print(DoiSo)
End Sub
Bạn cần đăng nhập để thấy link