Biến là một vùng nhớ được đặt tên để lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi chương trình.
Dim tên_biến As kiểu_biến
* Khai báo biến kiểu số nguyên
Dim so As Integer // khai báo biến kiểu số nguyên
so=5 // gán giá trị vào biến
* Ngoài kiểu integer còn kiểu double (số lẻ), string (chữ) , boolean (đúng / sai)
* Để dễ hiểu bài, chúng ta chỉ quan tâm 4 kiểu biến trên.
* Khai báo biến kiểu chữ VBA
Dim ten As String
ten="Tran A" ' giá trị biến ten được gán vào là Tran A
* Hãy nhận xét 2 dòng code VBA dưới
so=5 // gán giá trị vào biến
ten="Tran A"
Theo bạn 2 dòng code khác nhau như thế nào ?
Bài tập 1:
Đoạn code 1:
Dim a As Integer
a=3
a=6
Msgbox a
Dim a As Integer
a=3
Msgbox a
a=6
Hãy cho biết 2 đoạn code trên kết quả in ra của giá trị a là bao nhiêu, vì sao ?
Hằng (cons) trong VBA là một giá trị không thay đổi trong suốt quá trình thực thi của chương trình. Nếu bạn vẫn cố tình thay đổi giá trị thì sẽ báo lỗi.
Const PI As Double = 3.14159
Cố tính thay đổi là gì
Nếu hằng PI trên đã có giá trị nhưng chúng ta thay đổi lại là
PI=5 thì phát sinh lỗi, nhưng biến thì được
Ví dụ hằng (const)
Bạn đang viết 1 ứng dụng tính lương bằng VBA
Lương cơ bản trên 1 ngày là 500.000
Tiền lương mỗi nhân viên = [Lương cơ bản trên 1 ngày] * 28 (tổng ngày trong tháng)
* Biết rằng [Lương cơ bản trên 1 ngày] luôn cố định không thay đổi.
Dim LuongCoBanTrenNgay As Double
LuongCoBanTrenNgay = 500000
' tính lương NV A
Dim TienLuong_NV_A as Double
TienLuong_NV_A = LuongCoBanTrenNgay * 28
' tính lương NV B
Dim TienLuong_NV_B as Double
'Nếu vô tình sự nhầm lần code làm thay đổi biến
LuongCoBanTrenNgay = 1500000 ' code vẫn chấp nhận sự đổi
TienLuong_NV_B = LuongCoBanTrenNgay * 28
' Như vậy lương của Nhân viên B đã tính nhầm.
Ví dụ VBA trên là 1 minh chứng thực tế, bởi trong quá trình code 1 hệ thống phần mềm thường rất nhiều dòng code thậm chí lên đến hàng chục dòng code.
Nên việc sai sót hay gán lại 1 giá trị mới cho 1 biến là điều cho thể xảy ra, nên VBA cung cấp cho 1 từ khóa là HẰNG SỐ (const ) để xử lý việc này.
Const LuongCoBanTrenNgay As Double = 500000
Dim TienLuong_NV_A as Double
TienLuong_NV_A = LuongCoBanTrenNgay * 28
' Nếu có 1 đoạn code nào thay đổi lạ giá trị của LuongCoBanTrenNgay thì báo lỗi ngay
LuongCoBanTrenNgay = 1500000 ' dòng này sẽ phát sinh lỗi: không gán giá trị được cho const
Câu hỏi 1 về Const: Với code VBA trên thì bạn có đặt câu hỏi ? làm thế nào để gán giá trị cho hằng LuongCoBanTrenNgay khi chúng ta nạp vào từ dữ liệu của table hay từ xml / text ?
Câu hỏi 2 về Const: Giữa biến và hằng thì máy tính xử lý bên nào nhanh hơn ?
Tìm kiếm:
Lập trình VBA bạn cần phân biệt sự khác nhau giữa biến và hằng như thế nào để phần mềm hiệu quả