Đây là câu trả lời của trầu bà điểm, cạnh tranh với cau thủ đức.
Thớt hỏi mập mờ, khong định nghĩa được từ "cố định". Không phân biệt được các tình huống - nếu phân biệt được thì đã dùng từ ngữ khác.
1. Loại cố định hằng. Tiếng chuyên môn là constant. Một vật thể được định là hằng thì sẽ mang giá trị này mãi, không thể dùng phép gán (dấu =) để gán cho một trị khác. VBA định loại này bằng từ khoá Const
Const coDinh = 100
Lưu ý rằng hằng không thể thay đổi cho nên không thể gọi là biến. Cái dấu = tôi dùng trên là phép định trị, không hẳn 100% là phép gán. Đối với VBA thì định trị không khác gán là bao nhiêu, nhưng ngôn ngữ khác thì có thể có sự khác biệt.
2. Loại cố định trong mỗi lượt gọi của hàm/phương thức (function/sub). Tiếng chuyên môn gọi là heap memory variables. Tuy biến có tầm vực trong sub/function nhưng được chứa trong heap thay vì stack như các biến khác. Khi sub/function thoát ra thì các biến chứa trong stack bị huỷ trong khi phần chứa trong heap vẫn tồn tại. Vì vậy, loại biến này sẽ giữ giá trị của nó trong suốt thời gian chạy của chương trình. Nếu lượt gọi thứ i của function gán cho biến 1 trị abc trước khi thoát ra thì lượt gọi thứ i+1 của function sẽ thấy nó khởi đầu bằng trị abc. VBA định loại này bằng từ khoá Static
Static coDinh As Integer
Lưu ý rằng khi chương trình chấm dứt thì heap cũng bị huỷ luôn. Vì vậy, trong lượt chạy kế tiếp của chương trình thì biến này lại bắt đầu lại từ đầu.
3. Loại cố định sau khi chương trình chấm dứt. Tiếng chuyên môn gọi là persistent. Loại này dùng để giữ lại giá trị tính toán của chương trình trong lượt chạy thứ i để tiếp tục dùng cho đợt chạy thứ i+1. Điển hình của loại này là CSDL. Đối với khoảng giá trị thì cách thực nhiện dễ nhất là tạo một hidden worksheet và chứa chúng.
(nếu tôi đoán không lầm thì ý của thớt là muốn loại 3. Nhưng tôi không đi sâu nữa vì giới hạn của trầu bà điểm chỉ tới đây. Việc thực hiện cái gì đó thì thớt chỉ muốn hỏi cau thủ đức)