Như tiêu đề đã nêu, nhờ các anh chị viết code để file đính kèm có thể hoạt động với hàm tìm kiếm, sao cho nó sục sao hết các sheet để tìm và trả kết quả.
Mô tả chi tiết có trong file đính kèm
Chủ đề không mới, nhưng em không làm được. Rất mong được giúp đỡ
Em xin cảm ơn
Như tiêu đề đã nêu, nhờ các anh chị viết code để file đính kèm có thể hoạt động với hàm tìm kiếm, sao cho nó sục sao hết các sheet để tìm và trả kết quả.
Mô tả chi tiết có trong file đính kèm
Chủ đề không mới, nhưng em không làm được. Rất mong được giúp đỡ
Em xin cảm ơn
Lúc trước tôi có viết hàm MVlookUp dò tìm trên nhiều sheet
Mã:
Function MVlookUp(ByVal Find_Value, ByVal Range_Address As String, ColIndex As Long)
Dim wks As Worksheet, rngFind As Range
MVlookUp = CVErr(xlErrNA)
For Each wks In ActiveWorkbook.Worksheets
If UCase(wks.Name) <> UCase(Application.ThisCell.Parent.Name) Then
Set rngFind = wks.Range(Range_Address).Resize(, 1).Find(Find_Value, , xlFormulas, xlWhole, , , False)
If Not rngFind Is Nothing Then
MVlookUp = rngFind(, ColIndex)
Exit Function
End If
End If
Next
End Function
Ví dụ áp dụng:
Mã:
=MVlookUp(A5,"F5:I1000",2)
nghĩa là lấy giá trị của cell A5 tìm trên tất cả các sheet (ngoại trừ sheet chứa công thức), trong vùng F5:I1000 và lấy kết quả ở cột thứ 2 về phía bên phải
Mã:
=MVlookUp(A6,"F5:I1000",-2)
nghĩa là lấy giá trị của cell A6 tìm trên tất cả các sheet (ngoại trừ sheet chứa công thức), trong vùng F5:I1000 và lấy kết quả ở cột thứ 3 về phía bên trái
Tức là hàm này tìm về phía trái hay phải đều được
----------------------------
Bạn xem thử có áp dụng được không
Lúc trước tôi có viết hàm MVlookUp dò tìm trên nhiều sheet
Mã:
Function MVlookUp(ByVal Find_Value, ByVal Range_Address As String, ColIndex As Long)
Dim wks As Worksheet, rngFind As Range
MVlookUp = CVErr(xlErrNA)
For Each wks In ActiveWorkbook.Worksheets
If UCase(wks.Name) <> UCase(Application.ThisCell.Parent.Name) Then
Set rngFind = wks.Range(Range_Address).Resize(, 1).Find(Find_Value, , xlFormulas, xlWhole, , , False)
If Not rngFind Is Nothing Then
MVlookUp = rngFind(, ColIndex)
Exit Function
End If
End If
Next
End Function
Ví dụ áp dụng:
Mã:
=MVlookUp(A5,"F5:I1000",2)
nghĩa là lấy giá trị của cell A5 tìm trên tất cả các sheet (ngoại trừ sheet chứa công thức), trong vùng F5:I1000 và lấy kết quả ở cột thứ 2 về phía bên phải
Mã:
=MVlookUp(A6,"F5:I1000",-2)
nghĩa là lấy giá trị của cell A6 tìm trên tất cả các sheet (ngoại trừ sheet chứa công thức), trong vùng F5:I1000 và lấy kết quả ở cột thứ 3 về phía bên trái
Tức là hàm này tìm về phía trái hay phải đều được
----------------------------
Bạn xem thử có áp dụng được không
Cảm ơn bác. Code trên rất chạy rất tốt theo như hướng dẫn của bác.
Như em đã trình bày trong file đính kèm trước, dữ liệu của em chứa rất nhiều dòng và file em làm cho người khác sử dụng, chính vì thế em muốn chạy hoàn toàn bằng code VBA thay cho dùng hàm
Em đã thử vọc vạch như chẳng thành công
Lúc trước tôi có viết hàm MVlookUp dò tìm trên nhiều sheet
Mã:
Function MVlookUp(ByVal Find_Value, ByVal Range_Address As String, ColIndex As Long)
Dim wks As Worksheet, rngFind As Range
MVlookUp = CVErr(xlErrNA)
For Each wks In ActiveWorkbook.Worksheets
If UCase(wks.Name) <> UCase(Application.ThisCell.Parent.Name) Then
Set rngFind = wks.Range(Range_Address).Resize(, 1).Find(Find_Value, , xlFormulas, xlWhole, , , False)
If Not rngFind Is Nothing Then
MVlookUp = rngFind(, ColIndex)
Exit Function
End If
End If
Next
End Function
Ví dụ áp dụng:
Mã:
=MVlookUp(A5,"F5:I1000",2)
nghĩa là lấy giá trị của cell A5 tìm trên tất cả các sheet (ngoại trừ sheet chứa công thức), trong vùng F5:I1000 và lấy kết quả ở cột thứ 2 về phía bên phải
Mã:
=MVlookUp(A6,"F5:I1000",-2)
nghĩa là lấy giá trị của cell A6 tìm trên tất cả các sheet (ngoại trừ sheet chứa công thức), trong vùng F5:I1000 và lấy kết quả ở cột thứ 3 về phía bên trái
Tức là hàm này tìm về phía trái hay phải đều được
----------------------------
Bạn xem thử có áp dụng được không