11/08/2018, 19:21

Biến và kiểu dữ liệu trong VBA

Học java core 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 ...

Học java core

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

Kết quả:

Ví dụ kiểu dữ liệu Integer trong VBA

Kiểu dữ liệu String
Dim str As String
str = "Hello Excel VBA!"
Range("A1").Value = str

Kết quả:

Ví dụ kiểu dữ liệu String trong VBA

Kiểu dữ liệu Double

Ví dụ 1:

Dim x As Integer
x = 5.5
Range("A1").Value = "x = " & x

Kết quả:

Ví dụ kiểu dữ liệu Double trong VBA

Đó 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ả:

Ví dụ kiểu dữ liệu Double trong VBA

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ả:

Ví dụ kiểu dữ liệu Boolean trong VBA
Học java core
0