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: ?
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.
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.
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
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ý.