Cách dùng hàm If kết hợp AND và OR

Liên hệ QC

platuan

Thành viên mới
Tham gia
2/12/09
Bài viết
45
Được thích
12
Hi all,
Cả nhà cho mình hỏi cách dùng if kết hợp and và or. Ví dụ:

If x=1 and y=1 OR x=1 and y=2 Then Run function 1 End if

Thanks all!!!
 
Hi all,
Cả nhà cho mình hỏi cách dùng if kết hợp and và or. Ví dụ:

If x=1 and y=1 OR x=1 and y=2 Then Run function 1 End if

Thanks all!!!
Thực ra nếu đề như vậy thì 2 hàm if tối ưu hơn, nhưng mà code dài hơn tí:
Mã:
if x=1 then
    if y=1 or y =2 then
        Run function 1
    end if
end if
 
Thanks 2 Pro @trung.aof @Nhattanktnn :)

Còn case dưới code mình hơi dài 2 Pro có cao kiến gì cho gọn code lại không chỉ mình với.

If text1=A1 OR text1=A2 OR text1=A3 OR ... OR text1=A100 AND text2 = B Then Run function 1 End if
 
Thanks 2 Pro @trung.aof @Nhattanktnn :)

Còn case dưới code mình hơi dài 2 Pro có cao kiến gì cho gọn code lại không chỉ mình với.

If text1=A1 OR text1=A2 OR text1=A3 OR ... OR text1=A100 AND text2 = B Then Run function 1 End if
Dùng vòng lặp:
Mã:
Dim I As Long
If Text2 = B Then
    For I = 1 To 100
        If text1 = Sheets("ABC").Cells(I, "A").Value Then
            Run function 1
            Exit For
        End If
    Next
End If
 
Select case hoặc cho điều kiện vào một chuỗi rồi dùng instr().
Cả 2 cái này em đều nghĩ tới rồi anh, select case thấy không ổn vì có tới 100 lần. Giữa instr và for thì em chọn for cho dễ hiểu, với lại instr chưa hẳn đúng trong trường hợp text1 là chuỗi có trong A1 nhưng nó không bằng A1
 
Rồi cũng phải liệt kê ra 100 loại mà anh
Vậy có cách nào lại không liệt kê điều kiện ra vậy chứ?

Viết luật quy định 100 điều khoản thì phải viết rõ 100 điều khoản đó ra giấy, không lẽ giấu trong đầu ai đó sao?

Chời ơi.

If text1 = Sheets("ABC").Cells(I, "A").Value Then

Bạn cũng phải gõ vào 100 ô trên bảng tính đó thôi. Không lẽ tự nhiên có?
 
Vậy có cách nào lại không liệt kê điều kiện ra vậy chứ?

Viết luật quy định 100 điều khoản thì phải viết rõ 100 điều khoản đó ra giấy, không lẽ giấu trong đầu ai đó sao?

Chời ơi.
Anh không hiểu ý em rồi, theo em hiểu ý thớt là điều kiện nằm trên cell từ A1 tới A100. Nếu select vậy thì phải ngồi gõ giá trị trong 100 cell ấy vào hàm select. Còn vòng for thì chỉ duyệt qua từng ô thôi
Edit: Mà không rõ ý thớt A1 là cell A1 hay là chữ đại diện nữa
 
Sao quý vị hiểu ý Tây con hay thế.
Tôi thì rối mù.
Case chả hiểu là Tây con muốn chèn tiếng Tây hay muốn dùng ngữ pháp VBA.

Cả 2 cái này em đều nghĩ tới rồi anh, select case thấy không ổn vì có tới 100 lần. Giữa instr và for thì em chọn for cho dễ hiểu, với lại instr chưa hẳn đúng trong trường hợp text1 là chuỗi có trong A1 nhưng nó không bằng A1
100 lần thì dùng Match chứ vòng lặp mệt lắm.
Nếu duyệt rất nhiều thì nên sắp xếp, rồi dùng Match với tham số 1 và so sánh lại.

Dim strCond as variant
strCond = 1
Select case strCond
case 1,2,3, "A", B", "C" ' liệt kê hết ở đây.
Msgbox strCond
End Select
Nếu Case có sự liên tiếp thì dùng "To"
Case 1 To 3, 50 To 100
 
Web KT
Back
Top Bottom