Hàm VBA VarType trong Excel
VBA VARTYPE có nghĩa là "Loại biến". Hàm này giúp chúng ta xác định kiểu dữ liệu được gán cho một biến cụ thể hay nói cách đơn giản là nó tìm thấy loại giá trị được lưu trữ hoặc gán cho biến.
Cú pháp

VarName: Chúng ta chỉ cần cung cấp tên biến để tìm dữ liệu được lưu trữ trong tên biến được cung cấp.
Vì vậy, nó lấy tên biến làm cú pháp hoặc đối số và trong đầu ra, nó trả về kiểu dữ liệu được gán cho biến hoặc kiểu dữ liệu được lưu trữ trong biến.
Vì vậy, nếu bạn đã bao giờ tự hỏi làm thế nào để tìm kiểu dữ liệu biến hoặc loại dữ liệu được gán cho biến, thì ở đây chúng ta có một hàm VBA “VarType”.

Ví dụ
Ví dụ 1
Trong VBA, trong khi viết mã, chúng ta thường khai báo các biến và gán một kiểu dữ liệu cho chúng. Ví dụ, hãy xem mã VBA bên dưới.
Mã:
Sub VarType_Example () Dim MyVar As String MyVar = "Hello" End Sub

Trong ví dụ trên, chúng tôi đã khai báo biến là “String” và đối với chuỗi này, chúng tôi đã gán giá trị là “Hello”.
Đây là một trường hợp đơn giản, nhưng cũng có thể khai báo các biến mà không cần gán biến cho chúng, vì vậy trong những trường hợp như vậy, hàm VarType sẽ giúp chúng ta.
Mã:
Sub VarType_Example () Dim MyVar MyVar = "Xin chào" End Sub

Trong đoạn mã trên, chúng ta chưa gán bất kỳ kiểu dữ liệu nào mà chỉ gán ngay giá trị là “Hello”, vì vậy bằng cách sử dụng hàm VarType, chúng ta có thể tìm thấy kiểu dữ liệu của biến.
Mở MSGBOX bằng mã hóa VBA trong đoạn mã trên.

Sau đó, mở chức năng VarType.

Bây giờ, hãy nhập tên biến làm đối số của hàm VARTYPE.
Mã:
Sub VarType_Example () Dim MyVar MyVar = "Xin chào" MsgBox VarType (MyVar) End Sub

Bây giờ hãy chạy mã và xem những gì chúng ta nhận được trong hộp tin nhắn.

Chúng tôi nhận được kết quả là 8 vì VBA có một số mã nhất định cho từng loại kiểu dữ liệu biến, vì vậy dưới đây là danh sách chi tiết dành cho bạn.
Giá trị | Không thay đổi | Sự miêu tả | ||
0 | vbEmpty | Biến chưa được khởi tạo | ||
1 | vbNull | Dữ liệu không hợp lệ được chỉ định | ||
2 | vbInteger | Giá trị biến là kiểu dữ liệu "Số nguyên" | ||
3 | vbLong | Giá trị biến là kiểu dữ liệu "Dài" | ||
4 | vbSingle | Giá trị biến là kiểu dữ liệu "Đơn" | ||
5 | vbDouble | Giá trị biến là kiểu dữ liệu "Double" | ||
6 | vbCurrency | Giá trị biến là kiểu dữ liệu "Đơn vị tiền tệ" | ||
7 | vbDate | Giá trị biến là kiểu dữ liệu "Ngày" | ||
số 8 | vbString | Giá trị biến là kiểu dữ liệu "Chuỗi" | ||
9 | vbObject | Giá trị biến là kiểu dữ liệu "Đối tượng" | ||
10 | vbError | Giá trị biến là Giá trị lỗi | ||
11 | vbBoolean | Giá trị biến là kiểu dữ liệu "Boolean" | ||
12 | vbVariant | Giá trị biến là kiểu dữ liệu "Biến thể" (chỉ được sử dụng với mảng các biến thể) | ||
13 | vbDataObject | Giá trị biến là Đối tượng truy cập dữ liệu | ||
14 | vbDecimal | Giá trị biến là kiểu dữ liệu "Thập phân" | ||
17 | vbByte | Giá trị biến là kiểu dữ liệu "Byte" | ||
20 | vbLongLong | Giá trị biến là kiểu dữ liệu "LONG LONG" (chỉ hợp lệ trên nền tảng 64 bit) | ||
36 | vbUserDefinedType | Giá trị biến là kiểu dữ liệu "Người dùng xác định" | ||
8192 | vbArray | Giá trị biến là Mảng. |
Được rồi, bây giờ mã của chúng ta đã sửa lại kiểu dữ liệu biến là 8, tức là tên biến “MyVar” chứa kiểu dữ liệu “Chuỗi”.
Ví dụ số 2
Bây giờ, hãy xem đoạn mã dưới đây.
Mã:
Sub VarType_Example2 () Dim MyVar Set MyVar = ThisWorkbook MsgBox VarType (MyVar) End Sub

Hãy chạy đoạn mã này và xem kết quả là gì.

Kết quả là 9, tức là, biến chứa kiểu dữ liệu "Đối tượng". Có, điều này đúng vì đối với biến “MyVar”, chúng tôi đã đặt tham chiếu sổ làm việc là “Sổ làm việc này”.
Ví dụ # 3
Bây giờ, hãy xem đoạn mã dưới đây.
Mã:
Sub VarType_Example3 () Dim MyVar MyVar = 32500 MsgBox VarType (MyVar) End Sub

Điều này sẽ trả về kết quả là 2.

Bởi vì số 32500, được gán cho biến, là một giá trị "Số nguyên".
Bây giờ tôi sẽ thay đổi giá trị thành 40000 và xem kết quả.
Mã:
Sub VarType_Example4 () Dim MyVar MyVar = 40000 MsgBox VarType (MyVar) End Sub

Điều này sẽ cho kết quả là 3.

Vì giá trị Số nguyên kết thúc bằng 32767, vì vậy bất kỳ thứ gì ở trên sẽ được coi là kiểu dữ liệu VBA LONG.
Bây giờ tôi sẽ đặt con số trong dấu ngoặc kép.
Mã:
Sub VarType_Example5 () Dim MyVar MyVar = "40000" MsgBox VarType (MyVar) End Sub

Chạy mã và xem kết quả.

Chúng tôi nhận được kết quả là 8, tức là, kiểu dữ liệu chuỗi.
Điều này là do bất kỳ thứ gì được cung cấp trong dấu ngoặc đơn sẽ được coi là một biến Chuỗi.
Những điều cần ghi nhớ
- VARTYPE là viết tắt của “Loại có thể thay đổi”.
- Kiểu dữ liệu được biểu thị bằng các số duy nhất, vì vậy hãy tham khảo bảng để hiểu số nào đại diện cho kiểu dữ liệu biến nào.