Các bác sửa code này giùm em

Liên hệ QC

tamhoncuada10313

Thành viên thường trực
Tham gia
7/4/08
Bài viết
221
Được thích
65
Public Sub tim()
Dim last_row As Long
Dim i As Long
'i = 4
last_row = Sheet1.Range("B4").End(xlDown).Row
For i = 4 To last_row

If Sheet1.Range("B" & i).Value = Sheet1.Range("J5").Value Then
MsgBox "tim thay", , "Thong bao"
Exit Sub
Else
MsgBox "khong tim thay", , "thong bao"
Exit Sub
End If
Next i
End Sub
hình như vòng for nó không chạy các bác ạ. Ô J5 là ô nhập vào điều kiện cần tìm kiếm (ở đây là mã máy)
 
Code vẫn chạy bình thường mà! Bạn có thể xem lại cách viết (Chữ Hoa, chữ thường) hoặc Font chữ xem có vấn đề gì không! Nếu có thể đem file đó lên diễn đàn luôn thì tốt nhất!
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Public Sub tim()
 Dim last_row As Long, i As Long     'i = 4'
 last_row = Sheet1.Range("B4").End(xlDown).Row
 For i = 4 To last_row
    If Sheet1.Range("B" & i).Value = Sheet1.Range("J5").Value Then
         MsgBox "tim thay", , "Thong bao"
         Exit Sub
    Else
        MsgBox "khong tim thay", , "thong bao"
        Exit Sub
    End If
  Next i

End Sub
hình như vòng for nó không chạy các bác ạ. Ô J5 là ô nhập vào điều kiện cần tìm kiếm (ở đây là mã máy)
Mới xong hàng 4 bạn bắt nó thoát rồi, còn chi mà tìm tiếp;
Theo mình, nó phải thế này
PHP:
Public Sub TimKiem()
 Dim last_row As Long, i As Long :               Dim GiaTri, StrC As String
 StrC="Tim thay"   :                                  GiaTri=Sheet1.[J5]
 last_row = Sheet1.[B4].End(xlDown).Row
 For i = 4 To last_row
    If Sheet1.Cells(i,2) = GiaTri Then
         MsgBox StrC, , "Thong bao:":                Exit Sub
    End If
  Next i
  If i > Last_Row then MsgBox "Khong " & StrC, , "Thong bao:"
End Sub

1*/ Biến GiaTri sẽ giúp việc tìm kiếm nhanh hơn tẹo;
2*/ Bạn dùng phương thức Find sẽ nhanh hơn nữa, nhất là chỉ tìm trên 1 cột.
 
Upvote 0
Public Sub tim()
Dim last_row As Long
Dim i As Long
'i = 4
last_row = Sheet1.Range("B4").End(xlDown).Row
For i = 4 To last_row
If Sheet1.Range("B" & i).Value = Sheet1.Range("J5").Value Then
MsgBox "tim thay", , "Thong bao"
Exit Sub
Else
MsgBox "khong tim thay", , "thong bao"
Exit Sub
End If
Next i
End Sub
hình như vòng for nó không chạy các bác ạ. Ô J5 là ô nhập vào điều kiện cần tìm kiếm (ở đây là mã máy)


Xin tham gia cho vui

PHP:
Public Sub tim()
    Dim last_row As Long
    Dim i As Long
    last_row = Sheet1.Range("B4").End(xlDown).Row
    For i = 4 To last_row
        If Sheet1.Range("B" & i).Value = Sheet1.Range("J5").Value Then
            MsgBox "tim thay", , "Thong bao"
            Exit For
        Else
            MsgBox "khong tim thay", , "thong bao"
            Exit Sub
        End If
    Next i
End Sub

Thay bằng Exit For
 
Lần chỉnh sửa cuối:
Upvote 0
Từ ngày có zợ đến giờ thấy trình độ VBA nói riêng có khác à nha!

PHP:
Public Sub tim()
    Dim last_row As Long,  i As Long
    last_row = Sheet1.Range("B4").End(xlDown).Row
    For i = 4 To last_row
4        If Sheet1.Range("B" & i).Value = Sheet1.Range("J5").Value Then
5            MsgBox "tim thay", , "Thong bao"
6            Exit For
7        Else
8            MsgBox "khong tim thay", , "thong bao"
9            Exit Sub
        End If
    Next i
End Sub
Thay bằng Exit For
Diễn nôm chổ này cái, nha:
C4: Giá trị tại [J5] = giá trị [B(i)] thì (thực hiện câu lệnh 5 & 6)
C5-C6: Hiện thông báo: 'Nó đây rồi!' ; Kết thúc vòng lặp;
C7: Điều kiện C4 không đạt thì (thưc thi C8 & C9)
C8-C9: Hiện thông báo 'không thấy' & Nghỉ chơi luôn!
Vây (i) không thể = 5 được đâu! Hai zợ chồng xem lại giúp, nha!
 
Lần chỉnh sửa cuối:
Upvote 0
Tại đọc nhanh quá....Sửa lại như sau:
PHP:
Public Sub tim() 
    Dim last_row As Long,  i As Long 
    last_row = Sheet1.Range("B4").End(xlDown).Row 
    For i = 4 To last_row 
4        If Sheet1.Range("B" & i).Value = Sheet1.Range("J5").Value Then 
5            MsgBox "tim thay", , "Thong bao" 
6            Exit For 
7        End If 
    Next i 
    If i>last_row Then
             MsgBox"khong tim thay",,"Thong bao"
    End If 
End Sub
</SPAN></SPAN>
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom