if trong vba excel

if trong vba excel

Mệnh đề if trong VBA

Mệnh đề if luôn luôn được sử dụng trong VBA để lập trình các ứng dụng excel.

If [điều kiện] Then
    [code được thực thi]
End If


If [điều kiện] Then
    [code được thực thi]
Else
  [code được thực thi]
End If

If [điều kiện 1] Then
   [code được thực thi]
ElseIf [điều kiện 2] Then
   [code được thực thi]
End If

*[điều kiện] trong mệnh đề if là gì ?

Nếu [Thu nhập ròng] >=100 tr thì đi du lịch MỸ

   * Thu nhập ròng = Tổng thu nhập - Tổng chi phí

  Thì [Thu nhập ròng] >=100 tr là điều kiện

  Giả sử ta có thu nhập ròng là 200 tr thì điều kiện là 200>=100

   Nếu nhìn bằng mắt thường thì ta thấy đã thỏa điều kiện, nhưng làm sao để máy tính (VBA Excel) nó hiểu được điều kiện này đúng, có nghĩa ta viết code làm sao để máy tính nó nhận diện được 200>=100 là đúng.

 Ta thử gõ: Msgbox 200>=100  xem kết quả thế nào ?

 Máy tính nó đã hiểu được là 200>=100 là TRUE.

Để máy tính làm 1 hành động nào đó khi 200>=100 thì ta phải sử dụng lệnh if vba

if 200>=100 then
Msgbox "DUNG, ban thu xep di du lich nhe !"
end if
 

* Bạn có nhận ra vấn đề là 200>=100 ta đâu thể biết trước các con số này mà phải lấy từ biến

Dim tongthunhap as Long
Dim tongchiphi as Long
Dim thunhaprong as Long
tongthunhap=400
tongchiphi=200
thunhaprong=tongthunhap-tongchiphi
if thunhaprong>=100 then
  Msgbox "DUNG, ban thu xep di du lich nhe !"
end if

// Nếu viết 1 cách rõ ràng hơn thì

Dim tongthunhap as Long
Dim tongchiphi as Long
Dim thunhaprong as Long
Dim dieukiendidulich as Boolean
//
tongthunhap=400
tongchiphi=200
thunhaprong=tongthunhap-tongchiphi
dieukiendidulich = ( thunhaprong>=100  )
if dieukiendidulich then
  Msgbox "DUNG, ban thu xep di du lich nhe !"
end if

*Sử dụng điều kiện với câu lệnh VBA

1=1 là TRUE hay False
1=2 là TRUE hay False

Các toán tử so sánh trong VBA Excel >, <, <>,> =, <=, =.

2>1 là TRUE hay False

Làm sao để VBA trả lời được 1 điều kiện đó TRUE hay False

Cách 1:
Msgbox 1=1
Cách 2:
Dim dk as Boolean
dk=(1=1)
Msgbox dk

 Thực tế khi làm phần mềm bằng VBA thì khi đã biết trước là đúng hay sai thì không cần phải

Msgbox 1=1

 

Điều kiện     Điều này đúng khi
x <5     x nhỏ hơn 5
x <= 5     x nhỏ hơn hoặc bằng 5
x> 5     x lớn hơn 5
x> = 5     x lớn hơn hoặc bằng 5
x = 5     x bằng 5
x <> 5     x không bằng 5
x> 5 And x <10     x lớn hơn 5 VÀ x nhỏ hơn 10
x = 2 Or x> 10     x bằng 2 HOẶC x lớn hơn 10
Vùng dữ liệu (“A1”) = “John”     Ô A1 chứa văn bản “John”
Vùng dữ liệu (“A1”) <> “John”     Ô A1 không chứa văn bản “John”

 

Bài tập hàm if VBA 01:

Khai bao biến
Dim hoten as String
Dim diem as Double
Hoten="Tran A"
diem=8

' Cách xếp loại:
nếu điểm >=8 thì giỏi
nếu diem>=7 và diem<8 thì khá
nếu diem>=5 và diem<7 thì trung bình
nếu diem<5 kém
 

* in ra câu: "Tran A co xep loai la GIOI" 
Tùy vào giá trị của biến diem