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: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
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 E2Em 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 ạ.
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
Đ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á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 ạ.
dạ em còn chưa biết nữa đây... hichicCứ 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.
Tự thân làm khổ cái thân...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 ạ
2 khả năng: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....
bạn í còn khả nắng nữa là: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á.
Dạ, quá chuẩn... em đồng ý với anh ...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...
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 ạ!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
Bài xen ngang & hình như đã hỏi ở đâu rồi mà!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 ạ!
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 ạ!Bài xen ngang & hình như đã hỏi ở đâu rồi mà!
ẹc ẹc ... câu này cháu thấy quen quenMọ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?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...