Biến và kiểu dữ liệu trong VBA

Share Button

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.


Để khai báo biến ta sử dụng cú pháp:

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ờ

Share Button

Comments

comments