Yukino Ichikawa
VIP
Hôm nay tôi sẽ giới thiệu cách khai báo đối số là mảng, sử dụng ParamArray .
Chúng ta khai báo như sau:
Khi sử dụng ParamArray thì bạn phải khai báo ở cuối.
Bạn không thể sử dụng ByVal, ByRef, Optional cho ParamArray.
Dưới đây là các ví dụ lỗi:
Hãy xem các ví du dưới đây:
Đối số ở trước ParamArray sẽ được ưu tiên truyền giá trị trước. Hãy xem ví dụ dưới đây:
Nguồn:
Chúng ta khai báo như sau:
Mã:
Sub TenThuTuc(ParamArray DoiSo() As Variant)
End Sub
Mã:
Sub TenThuTuc(DoiSo1 As Integer, ParamArray DoiSo2() As Variant)
End Sub
' Không khai báo như thế này được nhé:
Sub TenThuTuc(ParamArray DoiSo1() As Variant, DoiSo2 As Integer)
End Sub
Dưới đây là các ví dụ lỗi:
Mã:
' Khong khai bao nhu the nay duoc nhe
Sub TenThuTuc(ParamArray ByVal DoiSo1() As Variant)
End Sub
' Khong khai bao nhu the nay duoc nhe
Sub TenThuTuc(Optional ParamArray DoiSo1() As Variant)
End Sub
' Khong khai bao nhu the nay duoc nhe
Sub TenThuTuc(Optional DoiSo1 As Integer = 1, ParamArray DoiSo2() As Variant)
End Sub
Mã:
Sub ThucThi()
Call ViDu(1, 2, 3) ' 1,2,3
Call ViDu("Tips", "found") ' Tips,found
Call ViDu("Tips", 2) ' Tips,2
End Sub
' Thu tuc con
Sub ViDu(ParamArray DoiSo() As Variant)
Debug.Print(Join(DoiSo, ",")) ' Xuất mảng được phân tách bằng dấu phẩy
End Sub
Mã:
Sub ThucThi()
Call Vidu(1, 2, 3) ' 2,3
Call Vidu("Tips", "found") ' found
End Sub
' Thu tuc con
Sub Vidu(DoiSo1 As String, ParamArray DoiSo2() As Variant)
Debug.Print(Join(DoiSo2, ",")) ' Xuất mảng được phân tách bằng dấu phẩy
End Sub
Bạn cần đăng nhập để thấy link