Nhờ các Anh. Chị trên diễn đàn viết lại đoạn code sau đơn giản hơn ?

Liên hệ QC

van80

Thành viên chính thức
Tham gia
5/7/09
Bài viết
73
Được thích
4
Đây là đoạn code mình viết nhưng hơi bị dài quá. Mong các Anh Chị viết lại cho ngắn hơn.

If Range("Q36") = "Sai" Or Range("Q37") = "Sai" Or Range("Q38") = "Sai" Or Range("Q39") = "Sai" Or Range("Q40") = "Sai" Or Range("Q41") = "Sai" Or Range("Q43") = "Sai" Or Range("Q44") = "Sai" Or Range("Q45") = "Sai" Or Range("Q46") = "Sai" Then
MsgBox "Cac DT dieu tra cua HS vua nhap, Ban nhap bi sai can phai xem lai !", vbDefaultButton1, "Chú ý": Sheets("DB1").Select
Else
Exit Sub
End If

Cám ơn !
 
Bạn có thể dùng câu lệnh sau:

Mã:
If COUNTIF(Q36:Q46,"Sai") > 0 then
[COLOR=#000000]    MsgBox "Cac DT dieu tra cua HS vua nhap, Ban nhap bi sai can phai xem lai !", vbDefaultButton1, "Chú ý": [/COLOR][COLOR=#000000]Sheets("DB1").Select[/COLOR]
[COLOR=#000000]Else[/COLOR]
[COLOR=#000000]    Exit Sub[/COLOR]
[COLOR=#000000]End If[/COLOR]
 
Upvote 0
Đây là đoạn code mình viết nhưng hơi bị dài quá. Mong các Anh Chị viết lại cho ngắn hơn.

If Range("Q36") = "Sai" Or Range("Q37") = "Sai" Or Range("Q38") = "Sai" Or Range("Q39") = "Sai" Or Range("Q40") = "Sai" Or Range("Q41") = "Sai" Or Range("Q43") = "Sai" Or Range("Q44") = "Sai" Or Range("Q45") = "Sai" Or Range("Q46") = "Sai" Then
MsgBox "Cac DT dieu tra cua HS vua nhap, Ban nhap bi sai can phai xem lai !", vbDefaultButton1, "Chú ý": Sheets("DB1").Select
Else
Exit Sub
End If

Cám ơn !
có nhiều cách :
thử với code này xem thế nào !
PHP:
Sub GPE()   
 Dim rng As Range    
       Set rng = Range("Q36:Q44").Find("sai", , , xlPart)    
      If Not rng Is Nothing Then MsgBox " ............."
End Sub
hoặc code này :
PHP:
Sub GPE()  
  Dim tmparr  ,i&
    tmparr = Range("Q36:Q41")   
    For i = 1 To UBound(tmparr, 1)      
     If tmparr(i, 1) Like "sai" Then         
             MsgBox ".............."           
            Exit For      
     End If    
    Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu ô Q42 không thuộc diện kiểm tra ta có thể dùng:

Mã:
Sub Ktra1()
If WorksheetFunction.CountIf([Q36:Q41], "Sai") + WorksheetFunction.CountIf([Q43:Q46], "Sai") > 0 Then .....Làm gì tuỳ bạn
End Sub

nếu không phải thì:

Mã:
Sub Ktra1()
If WorksheetFunction.CountIf([Q36:Q46], "Sai")  > 0 Then .....Làm gì tuỳ bạn
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn có thể dùng câu lệnh sau:

Mã:
If COUNTIF(Q36:Q46,"Sai") > 0 then
[COLOR=#000000]    MsgBox "Cac DT dieu tra cua HS vua nhap, Ban nhap bi sai can phai xem lai !", vbDefaultButton1, "Chú ý": [/COLOR][COLOR=#000000]Sheets("DB1").Select[/COLOR]
[COLOR=#000000]Else[/COLOR]
[COLOR=#000000]    Exit Sub[/COLOR]
[COLOR=#000000]End If[/COLOR]
Khi kiểm tra chương trình báo lỗi sai ở hàm COUNTIF
bạn xem lại dùm nha ! cán ơn bạn nhiều.
 
Upvote 0
Khi kiểm tra chương trình báo lỗi sai ở hàm COUNTIF
bạn xem lại dùm nha ! cán ơn bạn nhiều.

COUNTIF là hàm của bảng tính --> muốn sử dụng bạn phải gõ đầy đủ : Application.worksheetFuntion.Countif ( có thể không cần application cũng được)
 
Upvote 0
có nhiều cách :
thử với code này xem thế nào !
PHP:
Sub GPE()   
 Dim rng As Range    
       Set rng = Range("Q36:Q44").Find("sai", , , xlPart)    
      If Not rng Is Nothing Then MsgBox " ............."
End Sub
hoặc code này :
PHP:
Sub GPE()  
  Dim tmparr  ,i&
    tmparr = Range("Q36:Q41")   
    For i = 1 To UBound(tmparr, 1)      
     If tmparr(i, 1) Like "sai" Then         
             MsgBox ".............."           
            Exit For      
     End If    
    Next
End Sub

Cả 2 đoạn code trên rất tuyệt vời , mình đã kiểm tra rồi. Cám ơn nhiều ! Thân mến chào !
 
Upvote 0
Web KT
Back
Top Bottom