Saturday, February 10, 2018

vba02

Một số kiểu dữ liệu thường dùng trong VBA

1. Kiểu số nguyên (Byte, Integer, Long)

Tên kiểu

Phạm vi

Chiếm trong bộ nhớ

Byte

0 đến 28-1 (0 à 255)

1 Byte

Integer

-215 à 215-1

(-32.768 à 32.767)

2 Byte

(215 vì 1 bít chứa dấu)

Long

-231 à 231-1

(-2.147.483.648 à 2.147.483.647)

4 Byte

(231 vì 1 bít chứa dấu)

Các phép toán: + - * / Mod (chia lấy phần dư) \ (chia lấy phần nguyên)
VD:
7 mod 3 = 1      8 mod 2 = 0
7 \ 3 = 2        10 / 3 = 3.33..333
(-5) mod 2 = -1 >>Để cho kết quả đúng là số dương ta dùng công thức sau:
Vd: a mod b (a<0,b>0) khi đó kết quả a mod b được viết lại như sau: 
b - (-a mod b)khi đó (-5 mod 2) = 2-(-(-5) mod 2)=1  

2. Kiểu số thực (Single, Double)

- Sử dụng dấu “.” trong biểu diễn thập phân
- Phép toán: + -  * /
- Singgle (2Byte); Double (4Byte)

3. Kiểu ngày (Date)

- Hằng viết dưới dạng:  #11/4/1983# là ngày 04 tháng 11 năm 1983 (m/d/yyyy).
- Phép toán:
Ngày – Ngày = là khoảng cách giữa hai ngày (theo số ngày)
Ngày – Số = Ngày trước đó (#11/4/1983# - 1 =  ngày 3 tháng 11 năm 1983)
Ngày + Số = Ngày sau (#11/4/1983# + 1 = ngày 5 tháng 11 năm 1983).
Ví dụ:
Sub ddmmyyyy()
  Dim ngay As Date
  ngay = #11/4/1983#
  MsgBox ngay & ChrW(10) & ngay + 1 & ChrW(10) & ngay - 1
  MsgBox "Ngay: " & Day(ngay) & ChrW(10) & "Thang: " & Month(ngay) & ChrW(10) & "Nam:" & Year(ngay)
End Sub
Một số hàm xử lý kiểu Date
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ờ

3. Kiểu logic (Boolean)

- Chỉ có hai giá trị: True (đúng) và False (sai).
- Hằng: True, False
- Phép toán: AND (và) OR (hoặc) NOT (phủ định)
VD:  (a mod 2 =0) And (a mod 3=0) à True  thì a là số chẵn và a chia hết cho 3

4. Kiểu xâu kí tự (String)

- Lưu trữ tối đa 256 kí tự.
- Hằng xâu: đặt trong cặp dấu nháy kép Ví dụ: “Ha Noi”
- Phép toán: & (phép ghép xâu)

Ví dụ: “Chu” & “Se” à “ChuSe”;

s1=”Gia”   s2=”Lai”  à s=s1&“ ”&s2 à S=”Gia Lai”

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

5. Kiểu mảng (Array)

Cách khai báo (mảng một chiều):
Cú pháp: Dim TênMảng(n) As KiểuPhầnTử ' n nguyên dương tương ứng với n+1 phần tử
Ví dụ:
Dim  a(9)  As  Integer – mảng 10 phần tử kiểu số nguyên
Dim  b(10)  As  String – mảng 11 phần tử kiểu xâu kí tự
Dim  c(4)  As  Date – mảng 5 phần kiểu ngày
Lưu ý: chỉ số trong mảng một chiều ở trên bắt đầu từ 0
6. Kiểu bản ghi
Cúp pháp:
Type Tên kiểu bản ghi
     Trường 1 As Kiểu dữ liệu
     Trường 2 As Kiểu dữ liệu
     …
     Trường n As Kiểu dữ liệu
End Type
Ví dụ:
Type hocsinh
    hoten As String
    ngaysinh As Date
    GT As Boolean
    DBT As Double
End Type
Dim teo As hocsinh
à Để tham chiếu đến hoten, giới tính, điểm trung bình của biến teo ta viết:
teo.hoten, teo.GT, teo.DTB…
* Dim dslop(54) As hocsinh ‘Khai báo 1 danh sách tối đa 55 học sinh
à Để tham chiếu đến họ tên của học sinh thứ i ta viết: dslop(i).hoten
* Khai báo biến
[Static|Public|Private|DimTên biến As Kiểu dữ liệu

No comments:

Post a Comment