VBA VarType

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
wave wave wave wave wave