Biến thường được sử dụng để lưu trữ một giá trị thay đổi. Khi sử dụng biến trong VBA cần nhớ một số quy tắc đặt tên sau:
- Tên biến bắt đầu bằng một chữ cái.
- Trong tên không chứa các kí tự đặc biệt như ., @, &, $, #,! hoặc dấu cách.
- Tên biến không dài quá 255 kí tự.
- Tên biến không được trùng với các từ khóa.
Dim <<variable_name>> As <<variable_type>> varibale_name là tên biến varibale_type là kiểu của biến
Tuy nhiên Dim chỉ có tác dụng trong mỗi lần chạy. Khi kết thúc Sub hay Function biến sẽ được giải phóng khỏi bộ nhớ. Để biến được sử dụng cho đến khi đóng workbook ta cần khai báo thêm từ khóa static
Một số kiểu dữ liệu trong VBA bạn có thể sử dụng:
Kiểu | Nhận giá trị |
---|---|
Byte | 0 đến 255 |
Integer | -32,768 đến 32,767 |
Long | -2,147,483,648 đến 2,147,483,648 |
Single | -3.402823E+38 đến -1.401298E-45 |
Double | -1.79769313486232e+308 đến -4.94065645841247E-324 |
Currency | -922,337,203,685,477.5808 đến 922,337,203,685,477.5807 |
Decimal | +/- 79,228,162,514,264,337,593,543,950,335 |
String | 65,400 ký tự |
Date | Ngày tháng từ năm 100 đến năm 9999 |
Boolean | True hoặc False |
➡ Mặc định khi không báo kiểu dữ liệu VBA sẽ tự gán cho giá trị kiểu Integer nhưng trong một số trường hợp bạn sẽ bị thông báo lỗi. Ví dụ như khi ta thực hiện phép toán a = 100*500 kết quả là 50000 nhưng kiểu Integer chỉ có thể chứa giá trị max là 32767. Để khắc phục lỗi này ta sẽ phải chuyển đổi kiểu dữ liệu cho các số hạng trong phép toán. Một số kiểu chuyển đổi hay gặp là:
Cú pháp | Ý nghĩa |
CBool | Chuyển sang kiểu Boolean |
CByte | Chuyển sang Kiểu Byte |
CCur | Chuyển sang kiểu tiền tệ |
CDate | Chuyển sang kiểu ngày tháng |
CDbl | Chuyển sang kiểu Double |
Clng | Chuyển sang kiểu Long |
Dữ liệu kiểu chuỗi: Để khai báo dữ liệu kiểu chuỗi ta thường đặt giá trị trong dấu ”
a = "Học VBA" ' khai báo chuỗi bình thường b = "Hôm nay là thứ 7" ' khai báo chuỗi gồm các ký tự và chữ số c = "@#$#!#" 'khai báo biến gồm các ký tự đặc biệt d = "plc1810@gmail.com" 'khai báo chuỗi có các ký tự hỗn hợp chữ, số và ký tự đặc biệt
Một số hàm cho xử lý chuỗi
Tên hàm | Ý nghĩa |
LCase | Chuyển chuỗi thành viết thường |
UCase | Chuyển chuỗi thành viết hoa |
Left | Lấy ký tự bên trái |
Right | Lấy ký tự bên phải |
Mid | Lấy ký tự ở giữa |
Trim | Bỏ dấu cách thừa trong chuỗi |
Len | Trả về độ dài của chuỗi |
Một số ví dụ:
a = "Ha noi" a1 = "124 Dich Vong Hau" c = " 12 Pho Hue " Range("B2") = Len(a & a1) Range("B3") = Right(a1, 3) 'lay chu Ha Range("B2") = Left(a, 2) 'lay chu hau trong chuoi a1 Range("B3") = Right(a1, 3) 'lay chu Dich Vong Range("B4") = Mid(a1, 5, 9) 'Viet hoa chu HA NOI Range("B5") = UCase(a) 'Viet thuong chu ha noi Range("B6") = LCase(a) 'Bo dau cach thua trong chuoi c do ham trim trong VBA bi loi nen su dung o trung gian Range("B7") = c Range("B8") = "=Trim(B7)"
Dữ liệu kiểu ngày tháng thời gian: Để khai báo dữ liệu kiểu ngày tháng ta khai báo giá trị trong dấu #
a= #2/20/2015" 'khai báo ngày b= #8:20:20 AM# 'khai báo giờ a = #7/19/2013 3:04:09 PM# 'khai báo ngày và giờ
Một số hàm xử lý thời gian:
Tên hàm | Ý nghĩa |
date() | Trả về ngày hiện tại |
Cdate() | Chuẩn hóa kiểu ngày tháng |
Datediff() | Tính khoảng cách thời gian |
DateSerial() | Trả về kiểu ngày tháng |
IsDate() | Kiểm tra kiểu dữ liệu ngày tháng |
Day() | Trả về ngày |
Month() | Trả về tháng |
Year() | Trả về năm |
Weekday() | Trả về thứ trong tuần |
Now() | Trả về ngày giờ hiện tại |
Hour() | Trả về giờ |
Minute() | Trả về phút |
Second() | Trả về giây |
Time() | Trả về giờ hiện tại |
TimeSerial() | Trả về kiểu giờ |