Bài viết này sẽ trình bày việc sử dụng hàm VarType trong VBA.
VarType có nghĩa là Loại biến. Chúng ta có thể cung cấp tên của biến cho hàm VarType và nó sẽ trả về một số nguyên mô tả kiểu dữ liệu được lưu trữ trong biến đó theo danh sách các hằng số VBA.
Sử dụng một biến Variant để tìm VarType
Chúng ta có thể khai báo một biến là một biến Variant. Điều này sẽ cho phép chúng tôi lưu trữ bất kỳ loại dữ liệu được phép nào trong đó. Sau đó, chúng ta có thể điền biến này và sử dụng hàm VarType để xem loại dữ liệu nào trong biến.
Ví dụ:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = "Xin chào thế giới"MsgBox "Loại biến là" & VarType (MyVariable)Kết thúc Sub |
Thao tác này sẽ trả về hộp thông báo sau:
Giá trị của 8 do đó được trả về. Điều này trong Hằng số Excel xác định kiểu dữ liệu được lưu trữ trong biến.
Giá trị hằng số này tương ứng với bảng dưới đây:
Hằng số | Giá trị | Sự miêu tả |
---|---|---|
vbEmpty | 0 | Rỗng (chưa được khởi tạo) |
vbNull | 1 | Null (không có dữ liệu hợp lệ) |
vbInteger | 2 | Số nguyên |
vbLong | 3 | Số nguyên dài |
vbSingle | 4 | Số dấu phẩy động chính xác đơn |
vbDouble | 5 | Số dấu phẩy động chính xác kép |
vbCurrency | 6 | Giá trị tiền tệ |
vbDate | 7 | Giá trị ngày tháng |
vbString | 8 | Dây |
vbObject | 9 | Sự vật |
vbError | 10 | Giá trị lỗi |
vbBoolean | 11 | Giá trị boolean |
vbVariant | 12 | Khác nhau (chỉ được sử dụng với các mảng biến thể) |
vbDataObject | 13 | Một đối tượng truy cập dữ liệu |
vbDecimal | 14 | Giá trị thập phân |
vbByte | 17 | Giá trị byte |
vbLongLong | 20 | Số nguyên LongLong (chỉ hợp lệ trên nền tảng 64 bit) |
vbUserDefinedType | 36 | Các biến thể chứa các loại do người dùng xác định |
vbArray | 8192 | Mảng (luôn được thêm vào một hằng số khác khi được hàm này trả về) |
Chúng ta có thể thử một ví dụ khác:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = 32760MsgBox "Loại biến là" & VarType (MyVariable)Kết thúc Sub |
Lần này hộp thông báo sẽ trả về giá trị 2 vì kiểu dữ liệu được lưu trữ trong biến là Số nguyên.
Tuy nhiên, nếu chúng ta thay đổi giá trị thành 32780, thì giá trị trả về sẽ là 3 - Long Integer là kiểu dữ liệu Integer có giá trị lớn nhất là 32767; sau đó nó là một số nguyên dài.
Nếu chúng tôi sửa đổi một lần nữa mã:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = 32760,52MsgBox "Loại biến là" & VarType (MyVariable)Kết thúc Sub |
Bây giờ chúng ta sẽ nhận được giá trị là 5 được trả về - kiểu dữ liệu là Double do các chữ số thập phân.
Nếu chúng ta đặt giá trị vào biến trong dấu ngoặc kép, thì một lần nữa giá trị 8 sẽ được trả về vì bất kỳ giá trị nào có trong dấu ngoặc kép đều được lưu trữ dưới dạng giá trị chuỗi.
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = "32760.52"MsgBox "Loại biến là" & VarType (MyVariable)Kết thúc Sub |