anhtuan1066
Thành viên gạo cội
- Tham gia
- 10/3/07
- Bài viết
- 5,802
- Được thích
- 6,912
Đây là hàm dành cho bạn với yêu cầu dùng Find methoddạ ý em là lấy tất cả dữ liệu trùng bằng lệnh Find
Ví dụ đính kèm
Bảo đảm nhanh và chính xác (tìm đúng thứ tự từ trên xuống)
PHP:
Function JoinIf(LValue, LRange As Range, Col As Long, Optional Sep As String = " ")
Dim Temp As String, FRng As Range, CountLValue As Long
With LRange.Resize(, 1)
CountLValue = WorksheetFunction.CountIf(.Cells, LValue)
If CountLValue Then
Set FRng = .Cells(WorksheetFunction.Match(LValue, .Cells, 0))
Do
Temp = Temp & Sep & FRng(, Col)
CountLValue = CountLValue - 1
Set FRng = .Find(LValue, FRng, xlValues, xlWhole)
Loop Until CountLValue = 0
End If
End With
JoinIf = Mid(Temp, Len(Sep) + 1, Len(Temp))
End Function
PHP:
= JoinIf(Trị dò, bảng dò, cột dò, dấu phân cách)
-------------------
FindNext không làm việc được với UDF đâu sư phụ à!Còn hàm này cho kết quả tốt chỉ trong cửa sổ Immediate
Mã:Function TimKiem(VungTra As Range, LookUpValue As Range) As String Dim Clls As Range, Rng As Range: Dim MyAdd As String Set Rng = VungTra.Cells(1, 1).Resize(VungTra.Rows.Count) Set Clls = Rng.Find(LookUpValue.Value, , xlFormulas, xlWhole) If Clls Is Nothing Then TimKiem = "Khong Co Ket Qua" Else MyAdd = Clls.Address Do TimKiem = TimKiem & " & " & Clls.Offset(, 1).Value Set Clls = [B][U]Rng.FindNext(Clls)[/U][/B] Loop While Not Clls Is Nothing And MyAdd <> Clls.Address If Len(TimKiem) > 3 Then TimKiem = Mid(TimKiem, 4) Else TimKiem = "Chua Co Nguoi Nay Trong Danh Sach!" End If: End If End Function
File đính kèm
Lần chỉnh sửa cuối: