Dùng Hàm IsNumber kết hợp Find bị báo lỗi. Nhờ các anh chị xem giúp ạ

Liên hệ QC

MỹHạnhCB

Đi mây, về gió. !!!
Tham gia
25/3/22
Bài viết
123
Được thích
18
Xin chào anh chị trong diễn đàn GPE ạ.
Nội dung là em muốn tìm chuỗi truyền vào có tồn tại trong từng ô của cột E. Nếu có tồn tại thì sẽ thực hiện lấy thông tin của dòng đó và copy sang chỗ khác.
Nhưng em chạy đến dòng tìm kiếm "If Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Find(Cell, a)) = True Then" thì nó báo lỗi ạ. Mong các anh chị có thể sửa giúp em chỗ này, hoặc có đoạn mã nào khác không ạ. Em cám ơn nhiều.
Mã:
Sub tim_ten()
    Application.AskToUpdateLinks = False
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Dim a As String
    Dim i As Long, Cell As Range
    Dim wb As Workbook, ws As Worksheet
    Set wb = ActiveWorkbook
    Set ws = wb.Sheets(1)
Dim lr, lc, j As Long
a = InputBox(NhapTen, a, "")
With ws
    lr = .Cells(Rows.Count, "A").End(xlUp).Row
    lc = .Cells(1 & Columns.Count).End(xlToLeft).Column
    For Each Cell In .Range("E1:E" & lr).Cells
    For j = 1 To lr
If .Application.WorksheetFunction.IsNumber(.Application.WorksheetFunction.Find(Cell, a)) = True Then
.Range(Cells(j, "A"), Cells(j, lc)).Copy Cells(lr + 1, "A")
End If
    Next j
    Next Cell
End With
    wb.Close savechanges:=True
   Application.AskToUpdateLinks = True
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • txt1.xlsm
    16.6 KB · Đọc: 8
Lần chỉnh sửa cuối:
Em nhặt và ghép ạ. Nhưng em vẫn hiểu cách hoạt động của nó, chỉ là em không biết cách tìm chuỗi trong ô khi có nhiều kiểu định dạng ạ.
Mình cũng đoán là chắp vá nên sửa theo kiểu chắp vá vậy, kết quả mình trả sang sheet2.
 

File đính kèm

  • txt1.xlsm
    18.8 KB · Đọc: 6
Upvote 0
Hàm find của worksheetfunction trả về error nếu không tìm thấy chuỗi.
Error này phải được bẫy. Nếu không bẫy thì VBA báo lỗi.

Cách chữa:

1. Bẫy với On Error

2. Dùng hàm Application không qua WorksheetFunction

3. Dùng hàm VBA: InStr, Like,...
 
Upvote 0
Hàm find của worksheetfunction trả về error nếu không tìm thấy chuỗi.
Error này phải được bẫy. Nếu không bẫy thì VBA báo lỗi.

Cách chữa:

1. Bẫy với On Error

2. Dùng hàm Application không qua WorksheetFunction

3. Dùng hàm VBA: InStr, Like,...
Dạ em hiểu rồi ạ, cám ơn anh nhiều
 
Upvote 0
. . . . . . . Nhưng em vẫn hiểu cách hoạt động của nó, chỉ là em không biết cách tìm chuỗi trong ô khi có nhiều kiểu định dạng ạ.
Nhiều kiểu định dạng trong ô là những định dạnh như thế nào mà gây khó cho bạn vậy?
Bạn đã thử với phương thức FIND() trong VBA chưa vậy nhỉ? Có hẵn 1 tổng quan đồ sộ về phương thức này đó, bạn thử chiêm nghiệm lúc rỗi xem sao!
 
Upvote 0
Nhiều kiểu định dạng trong ô là những định dạnh như thế nào mà gây khó cho bạn vậy?
Bạn đã thử với phương thức FIND() trong VBA chưa vậy nhỉ? Có hẵn 1 tổng quan đồ sộ về phương thức này đó, bạn thử chiêm nghiệm lúc rỗi xem sao!
Vâng cám ơn anh đã hướng dẫn ạ
 
Upvote 0
Web KT

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

Back
Top Bottom