II. Sử dụng các cấu trúc phân nhánh của Visual Basic
3. Vòng lặp FOR EACH OHienTai IN VungO
- Dùng để lặp lại một phép tính hoặc một thao tác đối với từng ô một trong Vùng ô.
Lệnh hoặc phép tính chỉ viết cho 1 ô, nhưng lặp lại tương tự đối với toàn bộ các ô trong vùng.
Cú pháp:
FOR EACH OHienTai IN VungO (Vùng mà cần lặp lại các lệnh dưới cho tất cả các ô)
Các lệnh hoặc phép tính đối với ô hiện tại NEXT
Ví dụ: Thiết kế hàm TONGBP (VungDULIEU) biết rằng VungDULIEU là tên vùng có các ô số cần cộng tổng bình phương của tất cả các ô.
FUNCTION TONGBP (VDL) Dim Kq, OHienTai
FOR EACH OHienTai IN VDL Kq = Kq + OHienTai^2 NEXT
TONGBP = Kq END FUNCTION
- Muốn kiểm tra ô hiện tại có phải là ô số không thì dùng hàm isNumeric kết hợp với cấu trúc IF THEN ELSE. Ví dụ:
IF isNumeric (OHienTai) THEN
Các dòng phép tính khi ô hiện tại là ô số ELSE
Các dòng phép tính khi ô hiện tại không phải là ô số END IF
Tương tự muốn kiểm tra ô hiện tại có phải là ô ngày không thì dùng hàm isDate, có phải là ô rỗng không thì dùng hàm isNull kết hợp với cấu trúc IF THEN ELSE - Muốn kiểm tra các thuộc tính dữ liệu của ô hiện tại ta thường dùng để kiểm tra thuộc tính Font hoặc thuộc tính nền bằng cách sử dụng công thức:
OHienTai.Font. Thuộc_tính (Lấy thuộc tính Font chữ của ô hiện tại) Thuộc tính FONT gồm có:
OHienTai.Font.Name: Phông chữ đang sử dụng của ô hiện tại. OHienTai.Font.Size: Cỡ chữ đang sử dụng của ô hiện tại
OHienTai.Font.Color: Màu chữ của ô hiện tại.
OHienTai.Interiror. Color (Lấy thuộc tính màu nền của ô hiện tại)
Ví dụ: Thiết lập hàm mới có tên là CONGTHEOMAU(VungDULIEU, $C$3)
(Nếu ô nào là ô số trong vùng có màu trùng với màu của ô mẫu C3 thì cộng lại vào đưa kết quả tổng).
FUNCTION CONGTHEOMAU (VungDL, OMau) Dim OHienTai, KetQua, MauChuan, MauHienTai
MauChuan = OMau.Interiror.Color FOR EACH OHienTai IN VUNGDL
MauHienTai = OHienTai.Interiror.Color
IF ISNumeric (OHienTai) AND (MauHienTai = MauChuan) THEN KetQua = KetQua + OHienTai
NEXT
CONGTHEOMAU = KetQua END FUNCTION