Code hộp thoại tìm kiếm

Liên hệ QC

bkvampire10

Thành viên mới
Tham gia
14/2/22
Bài viết
21
Được thích
2
Chào mọi người

Em có học trên ytb tạo 1 cái box search và đã search được cột thứ 4. Nhưng khi khai báo để tìm từ tiếng Nhật thì nó không hiểu ( cột 1, cột 2)
Mọi người có thể chỉ em cách khai báo làm sao để nó tìm được cột 1, cột 2 không ạ?

Em cảm ơn
 

File đính kèm

  • TỪ VỰNG CHUYÊN NGÀNH.xlsm
    24.3 KB · Đọc: 20
Bạn tham khảo cái ni lúc rỗi nè:
PHP:
Private Sub TextBox1_Change()
 Dim Rng As Range, sRng As Range
 
 Set Rng = [C6].CurrentRegion
 If Len(TextBox1) >= 3 Then
    Set sRng = Rng.Find([C2].Value, , xlFormulas, xlPart)
    If Not sRng Is Nothing Then
        MsgBox Cells(sRng.Row, "E").Value
    End If
 End If
End Sub
Chúc vui suốt ngày nha bạn!
 
Upvote 0
E cảm ơn bác đã góp ý. Em sẽ ngâm cứu. Chúc bác cuối tuần vui vẻ.
 
Upvote 0
Tìm kiếm trong mảng.

Mã:
Option Compare Text

Private Sub TextBox1_Change()
Dim lastRow As Long, r As Long, findValue As String, dulieu(), rng As Range
    With Sheet1
        .Rows("7:1000").EntireRow.Hidden = False    ' mở các dòng ẩn 7:1000
        If Len(TextBox1.Value) = 0 Then Exit Sub    ' nếu từ tìm kiếm không có thì dọn đồ chơi
        lastRow = .Cells(Rows.Count, "E").End(xlUp).Row ' dòng cuối cùng có dữ liệu ử cột E
        If lastRow < 7 Then Exit Sub    ' nếu không có dữ liệu thì dọn đồ chơi
        dulieu = .Range("B7:C" & lastRow).Value ' lấy cột B, C vào mảng dulieu vì duyệt mảng rất nhanh, khi dữ liệu quá nhiều thì nên tìm trong mảng
    End With
    findValue = "*" & TextBox1.Value & "*"  ' từ cần tìm
    For r = 1 To UBound(dulieu, 1)  ' duyệt từng dòng
        If Not (dulieu(r, 1) Like findValue Or dulieu(r, 2) Like findValue) Then    ' nếu dòng hiện hành không chứa từ cần tìm ...
            If rng Is Nothing Then  ' rng - Range gồm các dòng không chứa từ cần tìm
                Set rng = Sheet1.Range("A" & r + 6).EntireRow
            Else
                Set rng = Union(rng, Sheet1.Range("A" & r + 6).EntireRow)
            End If
        End If
    Next r
    If Not rng Is Nothing Then  ' nếu có các dòng không chứa từ cần tìm thì ẩn các dòng đó
        rng.EntireRow.Hidden = True
        Set rng = Nothing
    End If
End Sub
 
Upvote 0
Tìm kiếm trong mảng.

Mã:
Option Compare Text

Private Sub TextBox1_Change()
Dim lastRow As Long, r As Long, findValue As String, dulieu(), rng As Range
    With Sheet1
        .Rows("7:1000").EntireRow.Hidden = False    ' mở các dòng ẩn 7:1000
        If Len(TextBox1.Value) = 0 Then Exit Sub    ' nếu từ tìm kiếm không có thì dọn đồ chơi
        lastRow = .Cells(Rows.Count, "E").End(xlUp).Row ' dòng cuối cùng có dữ liệu ử cột E
        If lastRow < 7 Then Exit Sub    ' nếu không có dữ liệu thì dọn đồ chơi
        dulieu = .Range("B7:C" & lastRow).Value ' lấy cột B, C vào mảng dulieu vì duyệt mảng rất nhanh, khi dữ liệu quá nhiều thì nên tìm trong mảng
    End With
    findValue = "*" & TextBox1.Value & "*"  ' từ cần tìm
    For r = 1 To UBound(dulieu, 1)  ' duyệt từng dòng
        If Not (dulieu(r, 1) Like findValue Or dulieu(r, 2) Like findValue) Then    ' nếu dòng hiện hành không chứa từ cần tìm ...
            If rng Is Nothing Then  ' rng - Range gồm các dòng không chứa từ cần tìm
                Set rng = Sheet1.Range("A" & r + 6).EntireRow
            Else
                Set rng = Union(rng, Sheet1.Range("A" & r + 6).EntireRow)
            End If
        End If
    Next r
    If Not rng Is Nothing Then  ' nếu có các dòng không chứa từ cần tìm thì ẩn các dòng đó
        rng.EntireRow.Hidden = True
        Set rng = Nothing
    End If
End Sub
dạ em cảm ơn, e sẽ thử ạ. chúc a 1 ngày vui vẻ.
 
Upvote 0
Web KT

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

Back
Top Bottom