Đoạn code tìm kiếm nhanh

Liên hệ QC

Thư Tín

Thành viên chính thức
Tham gia
3/5/19
Bài viết
75
Được thích
4
Em muốn lọc dữ liệu ở cột D một cách nhanh nhất chỉ cần gõ 3-4 số cuối ở ô D2 nó sẽ lọc ra những mã mình cần tìm, nhờ mọi người giúp em đoạn code em cảm ơn nhiều ạ.
 

File đính kèm

  • Book1.xlsx
    10 KB · Đọc: 14
Cái này mình dùng Filter không được sao? Mình thấy xài Filter nó cũng nhanh mà bạn.

1596981190821.png1596981227727.png1596981302017.png1596981314000.png
 
Upvote 0
Cái này mình dùng Filter không được sao? Mình thấy xài Filter nó cũng nhanh mà bạn.
View attachment 242763
View attachment 242765

View attachment 242768
File mình gần 10.000 dòng bạn à dùng filter lâu lắm, mình có sưu tầm được đoạn code tìm kiếm nhanh này nhưng nó tìm mấy ký tự đầu, giờ mình cần tìm mấy ký tự cuối bạn sửa lại giúp với:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo thoat
Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Rows.Count > 1 Then GoTo thoat
If Target.Columns.Count > 1 Then GoTo thoat
If Target.Address = "$N$3" Then
If Target = "" Then
ActiveSheet.ShowAllData
Else
ActiveSheet.Range("$A$6:$D$1000").AutoFilter Field:=3, Criteria1:=[N3] & "*"
End If
End If
thoat:
Application.EnableEvents = True
If Err Then MsgBox "err"
End Sub
 
Upvote 0
Em muốn lọc dữ liệu ở cột D một cách nhanh nhất chỉ cần gõ 3-4 số cuối ở ô D2 nó sẽ lọc ra những mã mình cần tìm, nhờ mọi người giúp em đoạn code em cảm ơn nhiều ạ.
Bạn không nói rõ là lọc và chọn như thế nào nên tôi tạm cho khi chọn 1 mã trong list thì nó sẽ ghi mã ra D2 và mô tả tại E2
 

File đính kèm

  • Book1_Loc_Combobox.xlsm
    26.5 KB · Đọc: 40
Upvote 0
Mã:
Function Filter2DArray(ByVal sArray, ByVal ColIndex As Long, ByVal FindStr As String, ByVal HasTitle As Boolean)
    Dim TmpArr, i As Long, J As Long, arr, Dic, TmpStr, Tmp, Chk As Boolean, TmpVal As Double
    On Error Resume Next
    Set Dic = CreateObject("Scripting.Dictionary")
        TmpArr = sArray
        ColIndex = ColIndex + LBound(TmpArr, 2) - 1
        Chk = (InStr("><=", Left(FindStr, 1)) > 0)
    For i = LBound(TmpArr, 1) - HasTitle To UBound(TmpArr, 1)
        If Chk And FindStr <> "" Then
            TmpVal = CDbl(TmpArr(i, ColIndex))
            If Evaluate(TmpVal & FindStr) Then Dic.Add i, ""
        Else
            If Left(FindStr, 1) = "!" Then
                If Not (UCase(TmpArr(i, ColIndex)) Like UCase(Mid(FindStr, 2, Len(FindStr)))) Then Dic.Add i, ""
            Else
                If UCase(TmpArr(i, ColIndex)) Like UCase(FindStr) Then Dic.Add i, ""
            End If
        End If
    Next
    If Dic.Count > 0 Then
        Tmp = Dic.keys
        ReDim arr(LBound(TmpArr, 1) To UBound(Tmp) + LBound(TmpArr, 1) - HasTitle, LBound(TmpArr, 2) To UBound(TmpArr, 2))
            For i = LBound(TmpArr, 1) - HasTitle To UBound(Tmp) + LBound(TmpArr, 1) - HasTitle
                For J = LBound(TmpArr, 2) To UBound(TmpArr, 2)
                    arr(i, J) = TmpArr(Tmp(i - LBound(TmpArr, 1) + HasTitle), J)
                Next
            Next
        If HasTitle Then
            For J = LBound(TmpArr, 2) To UBound(TmpArr, 2)
                arr(LBound(TmpArr, 1), J) = TmpArr(LBound(TmpArr, 1), J)
            Next
        End If
    End If
    Filter2DArray = arr
End Function
Bạn dùng code của bác Ndu xem sao.
 
Upvote 0
Em muốn lọc dữ liệu ở cột D một cách nhanh nhất chỉ cần gõ 3-4 số cuối ở ô D2 nó sẽ lọc ra những mã mình cần tìm, nhờ mọi người giúp em đoạn code em cảm ơn nhiều ạ.
Đang bị cách ly không có gì giải trí nên viết cho bạn xài thử và sẵn tặng cho ai có nhu cầu na ná
 

File đính kèm

  • Fast_Search.xlsb
    27.3 KB · Đọc: 65
Upvote 0
Cảm ơn mọi người đã giúp đỡ, tuy nhiên em muốn dùng đoạn code như trong file đính kèm đoạn code này hiện đang dò những ký tự đầu giờ em muốn dò 3-4 ký tự cuối nhờ mọi người sửa giúp em với, em cảm ơn nhiều ạ
 

File đính kèm

  • filter nhanh.xlsm
    14.8 KB · Đọc: 20
Upvote 0
Cứ dăm ba bữa thì lại thấy "dữ liệu cả chục ngàn dòng"
Tại sao những người chuyên chơi với dữ liệu khủng mà không chịu tiến hoá với thời đại nhỉ. Cứ ỷ lại vào GPE viết codee giùm.
Muốn lọc dữ liệu khủng thì cần phải học cách dùng Power Query.
 
Upvote 0
Cứ dăm ba bữa thì lại thấy "dữ liệu cả chục ngàn dòng"
Tại sao những người chuyên chơi với dữ liệu khủng mà không chịu tiến hoá với thời đại nhỉ. Cứ ỷ lại vào GPE viết codee giùm.
Muốn lọc dữ liệu khủng thì cần phải học cách dùng Power Query.
dạ em còn chưa biết nữa đây... hichic
Bắt rồi bẻ ...vào đi....
Bài đã được tự động gộp:

Cảm ơn mọi người đã giúp đỡ, tuy nhiên em muốn dùng đoạn code như trong file đính kèm đoạn code này hiện đang dò những ký tự đầu giờ em muốn dò 3-4 ký tự cuối nhờ mọi người sửa giúp em với, em cảm ơn nhiều ạ
Tự thân làm khổ cái thân...
Bạn coi bài #4 của bạn @Maika8008 chưa vậy??????????
bạn quánh vào cái ô D2 ký tự nào thì nó cũng xổ xuống nguyên cái list có ký tự mà mà gõ vào rùi mà chọn. nó tìm trước-sau-trên-dưới cho bạn hết ráo!!! bạn gõ ký mấy ký tự cuối mà trùng cái nào thì nó xổ ra bạn tất tần tật.... hơn cả Fugacar nữa ah....
Tìm hiểu rõ cái mà người ta giúp rùi hãy yêu cầu....
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn coi bài #4 của bạn @Maika8008 chưa vậy??????????
bạn quánh vào cái ô D2 ký tự nào thì nó cũng xổ xuống nguyên cái list có ký tự mà mà gõ vào rùi mà chọn. nó tìm trước-sau-trên-dưới cho bạn hết ráo!!! bạn gõ ký mấy ký tự cuối mà trùng cái nào thì nó xổ ra bạn tất tần tật.... hơn cả Fugacar nữa ah....
Tìm hiểu rõ cái mà người ta giúp rùi hãy yêu cầu....
2 khả năng:
1. Chê nhưng không nói ra.
2. Chưa xem cái file.

1 thì không sao nhưng nếu là 2 thì tệ quá.
 
Upvote 0
Mọi người ơi đừng có khó tính quá vì đó là dấu hiệu của sự lão hóa... ẹc ẹc. Kệ họ đi, chúng ta là những người vác tù và hàng tổng thôi mà. Cứ viết cho vui, ai muốn thì xài, không thích thì kệ đi...
 
Upvote 0
Mọi người ơi đừng có khó tính quá vì đó là dấu hiệu của sự lão hóa... ẹc ẹc. Kệ họ đi, chúng ta là những người vác tù và hàng tổng thôi mà. Cứ viết cho vui, ai muốn thì xài, không thích thì kệ đi...
Dạ, quá chuẩn... em đồng ý với anh ...
em sẽ theo anh cho tâm mình thanh thản...
 
Upvote 0
Bạn không nói rõ là lọc và chọn như thế nào nên tôi tạm cho khi chọn 1 mã trong list thì nó sẽ ghi mã ra D2 và mô tả tại E2
em muốn hỏi làm sao để có thể sửa combobox hiển thị được nhiều hơn 2 cột ạ. em tìm cách sửa mà không được nhờ bác chỉ giúp với ạ!
 
Upvote 0
}}}}} :D }}}}} Bài xen ngang & hình như đã hỏi ở đâu rồi mà!
$$$$@
dạ em có hỏi ở bên bài listbox nhưng thấy cách làm bằng combobox này cũng tiện nên em muốn thử dùng ạ. về việc ghi dữ liệu từ cột thứ 3 thì em đã tìm được chỗ sửa nhưng để combobox hiển thị được thêm 1 cột nữa thì em lại không biết sửa chỗ nào. bác có thể giúp em được không ạ! em cảm ơn ạ!
 
Upvote 0
em muốn hỏi làm sao để có thể sửa combobox hiển thị được nhiều hơn 2 cột ạ. em tìm cách sửa mà không được nhờ bác chỉ giúp với ạ!
Đặt giá trị 2 ở thuộc tính ColumnCount của combo và tại ColumnWidths gán độ rộng cho 2 cột đó, ví dụ: 40pt; 100pt
 
Upvote 0
Mọi người ơi đừng có khó tính quá vì đó là dấu hiệu của sự lão hóa... ẹc ẹc. Kệ họ đi, chúng ta là những người vác tù và hàng tổng thôi mà. Cứ viết cho vui, ai muốn thì xài, không thích thì kệ đi...
ẹc ẹc ... câu này cháu thấy quen quen
 
Upvote 0
Mọi người ơi đừng có khó tính quá vì đó là dấu hiệu của sự lão hóa... ẹc ẹc. Kệ họ đi, chúng ta là những người vác tù và hàng tổng thôi mà. Cứ viết cho vui, ai muốn thì xài, không thích thì kệ đi...
Nếu biết nghĩ tới Power Query trước khi è cổ vào VBA thì lão hoá có gì đâu xấu mà phải tránh?
 
Upvote 0
Web KT

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

Back
Top Bottom