Biến, hằng và kiểu kiểu trong VBA

Biến là gì ? hằng là gì và kiểu kiểu biến trong VBA sử dụng như thế nào cho hợp lý.

  1. Biến trong VBA Excel
    • Cú pháp khai báo biến VBA như thế nào ?
    • Các nguyên tắt khai báo biến trong VBA ?
  2. Hằng trong VBA Excel
  3. Vòng đời của biến và hằng trong VBA Excel
  4. Kiểu dữ liệu biến trong VBA Excel

Biến trong VBA là gì?

Biến là biến đổi, còn gọi là sự thay đổi.

Trong thế giới lập trình biến được gọi 1 vùng bộ nhớ để lưu các giá trị cần thiết, khi phần mềm chạy làm một công việc nào đó thì biến được tạo ra để lưu vào bộ nhớ giúp cho việc tính toán.

Ví dụ đơn giản như sau: bạn viết 1 phần mềm tính tổng 2 số thì bạn cần tạo ra 2 biến để lưu 2 số cần tính tổng.

a=2
b=10
Msgbox a+b

Như vậy máy tính làm gì với 3 dòng lệnh VBA trên ?

a=2 : Phần mềm VBA sẽ yêu cầu máy tính cấp phát 1 vùng bộ nhớ có tên là a, để lưu trữ số 2
b=10: Phần mềm VBA sẽ yêu cầu máy tính cấp phát 1 vùng bộ nhớ có tên là b, để lưu trữ số 10
Msgbox a+b : Phần mềm VBA sẽ truy xuất bộ nhớ tên a,b từ máy tính và cộng kết quả 2 số lại và in ra màn hình.

3 dòng lệnh VBA trên thì dòng nào là dòng khai báo biến ?

Bạn có đặt câu hỏi là khi VBA chạy qua lệnh a=2,b=10 thì biến này lưu vào RAM hay lưu vào ổ cứng ?
Khi Msgbox a+b thì phần mềm VBA truy xuất biến a,b ở đâu ? là RAM hay ổ cứng

Bài tập VBA 1: bạn hãy viết 1 đoạn code VBA có khai báo biến
Biến a, gán giá trị cho a là 20
Biến b, gán giá trị cho b là 2
Iin kết quả: chia biến a cho biến b.

Bài tập VBA 2: bạn hãy viết 1 đoạn có khai báo biến
Biến a, gán giá trị cho a là 10
Biến b, gán giá trị cho b là 20
Biến c, gán giá trị biến c là giá trị biến b chia cho 2
In kết quả: biến a nhân biến b, lấy tổng giá trị 2 biến a và b chia cho giá trị biến c

Bài tập VBA 3: viết 1 đạn code khai báo biến
Biến a, gán giá trị cho biến a là TRAN VAN
Biến b, giá giá trị cho biến b là D
Msgbox a+b sẽ cho ra kết quả như thế nào ?

Cũng như ví dụ 3, ta đổi là a gia tri là NGUYEN VAN, b giá trị BINH

Thì kết quả in ra NGUYEN VANBINH, bạn có nhận ra sự bất cập gì không, và cách sửa lại ?

Qua bài 3, bạn rút được điều gì ?

- Điều 1:?
- Điều 2: ?
 


 

  • Cú pháp khai báo biến VBA như thế nào ?

Trong VBA, có 2 cách khai báo biến hay sử dụng:
Dạng khai báo ngầm( Implicitly )
a=2
* là khai báo dạng ngầm
Dạng khai rõ ràng ( Explicitly ).
dim a as Interger
* là dạng rõ ràng ( Explicitly )

Trong thực tế làm ứng dụng VBA Excel khi nào chọn cách khai báo ngầm, khi nà khai báo rõ ràng ?
         * Sẽ giải thích bài tiếp theo, bài này bạn chỉ đặt câu hỏi ?
 Interger là kiểu dữ liệu số nguyên, sẽ nói chi tiết phần tiếp theo.

Cú pháp chung: Dim TEN_BIEN as KIEU_BIEN
Chữ màu xanh luôn cố định, chữ màu đỏ thay đổi lại cho phù hợp.

  • Các nguyên tắt khai báo biến trong VBA ?

 

Nguyên tắt khai báo biến:
' không có dấu cách
' không có ký tự đặc biệt
' không có dấu _ đầu của biến
‘ Không có con số đầu của tên biến


Dim ho____ten As String
Dim HOTEN____ As String
Dim _HOTEN____ As String
Dim A1 As String
Dim 1A As String
 

 

Hằng trong VBA là gì?

Hằng nó giống biến VBA, nhưng cái khác là khi cấp giá trị cho hằng (giá trị gán vào RAM) thì không thay đổi được.

  • Cú pháp khai báo hằng VBA như thế nào ?
  • Các nguyên tắt khai báo hằng trong VBA ?

 

Phạm vi của biến trong VBA

Vòng đời của biến trong VBA

 Kiễu dữ liệu biến và hằng trong VBA

Data type Storage size Range
Boolean 2 bytes True or False
Byte 1 byte 0 to 255
Collection Unknown Unknown
Currency (scaled integer) 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Date 8 bytes -657,434 (January 1, 100), to 2,958,465 (December 31, 9999)
Decimal 14 bytes +/-79,228,162,514,264,337,593,543,950,335 with no decimal point

+/-7.9228162514264337593543950335 with 28 places to the right of the decimal

Smallest non-zero number is+/-0.0000000000000000000000000001
Dictionary Unknown Unknown
Double (double-precision floating-point) 8 bytes -1.79769313486231E308 to -4.94065645841247E-324 for negative values

4.94065645841247E-324 to 1.79769313486232E308 for positive values
Integer 2 bytes -32,768 to 32,767
Long (Long integer) 4 bytes -2,147,483,648 to 2,147,483,647
LongLong (LongLong integer) 8 bytes -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

Valid on 64-bit platforms only.
LongPtr (Long integer on 32-bit systems, LongLong integer on 64-bit systems) 4 bytes on 32-bit systems

8 bytes on 64-bit systems
-2,147,483,648 to 2,147,483,647 on 32-bit systems

-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 on 64-bit systems
Object 4 bytes Any Object reference
Single (single-precision floating-point) 4 bytes -3.402823E38 to -1.401298E-45 for negative values

1.401298E-45 to 3.402823E38 for positive values
String (variable-length) 10 bytes + string length 0 to approximately 2 billion
String (fixed-length) Length of string 1 to approximately 65,400
Variant (with numbers) 16 bytes Any numeric value up to the range of a Double
Variant (with characters) 22 bytes + string length (24 bytes on 64-bit systems) Same range as for variable-length String
User-defined (using Type) Number required by elements The range of each element is the same as the range of its data type.

 

cc

 

Bài viết liên quan:

Biến là gì ? hằng là gì và kiểu kiểu biến trong VBA sử dụng như thế nào cho hợp lý.