Nội dung chính
Kiểu dữ liệu trong VBA
Bảng dưới đây thể hiển các kiểu dữ liệu được hỗ trợ trong VBA, bao gồm kích thước lưu trữ và vùng giá trị.
Kiểu giá trị | Kích thước | Vùng giá trị |
---|---|---|
Byte | 1 byte | 0 to 255 |
Boolean | 2 bytes | True hoặc False |
Integer | 2 bytes | -32,768 tới 32,767 |
Long | 4 bytes | -2,147,483,648 tới 2,147,483,647 |
LongLong | 8 bytes | -9,223,372,036,854,775,808 tới 9,223,372,036,854,775,807 (Chỉ hợp lệ trên hệ thống 64-bit.) |
LongPtr | 4 bytes trên hệ thống 32-bit, 8 bytes trên hệ thống 64-bit |
-2,147,483,648 tới 2,147,483,647 trên hệ thống 32-bit, -9,223,372,036,854,775,808 tới 9,223,372,036,854,775,807 trên hệ thống 64-bit |
Single | 4 bytes | -3.402823E38 tới -1.401298E-45 cho các giá trị âm; 1.401298E-45 tới 3.402823E38 cho các giá trị dương |
Double | 8 bytes | -1.79769313486231E308 tới -4.94065645841247E-324 cho các giá trị âm; 4.94065645841247E-324 tới 1.79769313486232E308 cho các giá trị dương |
Currency | 8 bytes | -922,337,203,685,477.5808 tới 922,337,203,685,477.5807 |
Decimal | 14 bytes | +/-79,228,162,514,264,337,593,543,950,335 với số không có dấu phảy động (.); +/-7.9228162514264337593543950335 với 28 ký tự bên phải sau dấu thập phân; số nhỏ nhất non-zero +/-0.0000000000000000000000000001 |
Date | 8 bytes | January 1, 100 tới December 31, 9999 |
Object | 4 bytes | Bất kỳ đối tượng tham chiếu |
String (độ dài thay đổi) | 10 bytes + string length | 0 tới xấp xỉ 2 tỉ |
String (độ dài cố định) | Độ dài của String | 1 tới xấp xỉ 65,400 |
Variant (kiểu số) | 16 bytes | Bất kỳ giá trị số nào |
Variant (kiểu ký tự) | 22 bytes + độ dài của chuỗi ký tự (24 bytes trên hệ thống 64-bit) | Giống như String có đội dài thay đổi |
Biến trong VBA
Bạn có thể khai báo biến với kiểu dữ liệu cụ thể hoặc KHÔNG cần khai báo biến trong VBA. VBA luôn tự động lưu các biến vào lần đầu tiên chúng được sử dụng. Những biến được không được khai báo là một dạng của biến thể của kiểu dữ liệu Variant.
Ví dụ 1: KHÔNG cần khai báo biến trong VBA
n = 100 MsgBox n
Ví dụ 2: Khai báo biến với kiểu dữ liệu cụ thể trong VBA.
Dim str As Integer str = "Hello VBA!" MsgBox str
Ví dụ biến trong VBA
Tạo macro file như trong bài này tạo một Macro trong Excel.
Kiểu dữ liệu Integer
Dim x As Integer
x = 6
Range("A1").Value = x
Dim x As Integer x = 6 Range("A1").Value = x
Kết quả:
Kiểu dữ liệu String
Dim str As String
str = "Hello Excel VBA!"
Range("A1").Value = str
Dim str As String str = "Hello Excel VBA!" Range("A1").Value = str
Kết quả:
Kiểu dữ liệu Double
Ví dụ 1:
Dim x As Integer x = 5.5 Range("A1").Value = "x = " & x
Kết quả:
Đó không phải là giá trị đúng! Rõ ràng giá trị biến x được khởi tạo với giá trị 5.5 ở dòng code thứ 2. Vậy tại sao kết quả lại là 6? Vì chúng ta đã khai báo kiểu dữ liệu của biến x là Integer nên giá trị có chứa dấu phảy động sẽ được ép thành kiểu Integer.
Ví dụ 2: để sử dụng số có chứa dấu phảy động, chúng ta nên khai báo biến có kiểu giá trị là Double
Dim x As Double x = 5.5 Range("A1").Value = "x = " & x
Kết quả:
Kiểu dữ liệu Boolean
Ví dụ:
Dim flag As Boolean flag = True If flag = True Then MsgBox "flag = True" End If
Kết quả: