Nhờ chỉ ra lỗi của phương thức find method

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

phansythao

Thành viên chính thức
Tham gia
21/8/17
Bài viết
52
Được thích
16
Giới tính
Nam
Xin chào các anh chị trong diễn đàn. Lỗi phát sinh trong file dưới khi Em Click đúp vào ô bất kỳ có dữ liệu trong sheets("DMHH"), lúc đổi tên thì phương thức findmethod bị lỗi.
Do không thành thạo phương thức tìm kiếm Find nên nhờ anh chị trong diễn đàn giúp chỉ ra lỗi sai trong code ạ.
Mã:
Private Sub CmdOk_Click()
    Dim arr()
    Dim Tencu As Variant
    Dim Tenmoi As Variant
    Dim i As Long, lrDMHH As Long
    Dim findrange As Range
    Dim findvalue As Variant
    
    lrDMHH = Sheets("DMHH").Range("A" & Rows.Count).End(xlUp).Row
    Set findrange = Sheets("DMHH").Range("C4:C" & lrDMHH)
    
    Tencu = LbTenHienTai.Caption ' gan ten cu = ten hien tai
    Tenmoi = TxtTenMoi.Value 'gan ten moi
    findvalue = findrange.Find(Tenmoi, LookIn:=xlValue, lookat:=xlWhole)
    
    If Tenmoi = "" Then
        MsgBox "Ban chua nhap ten moi", vbCritical
        TxtTenMoi.SetFocus       ' dua tro chuot vao vi tri text box
        Exit Sub
    End If
    Unload Me
'1. Dua ten moi vao vi tri click chuot
    If Tenmoi = Tencu Then
        MsgBox " Ten moi giong ten cu"
    ElseIf findvalue Is Nothing Then
        MsgBox " Ten moi da ton tai"
    Else
        Sheets("DMHH").Range("C" & Selection.Row).Value = Tenmoi
    End If
Xin cám ơn anh chị rất nhiều.
 

File đính kèm

  • BAN HANG VLXD.Rev01.xlsm
    185.4 KB · Đọc: 2
Nếu là mình thì sẽ là vầy:
PHP:
'  . . . . . '
    Dim findrange As Range
    Dim findvalue As Range  '!! @@  '
   
    lrDMHH = Sheets("DMHH").Range("A" & Rows.Count).End(xlUp).Row
    Set findrange = Sheets("DMHH").Range("C4:C" & lrDMHH)
   
    Tencu = LbTenHienTai.Caption ' gan ten cu = ten hien tai
    Tenmoi = TxtTenMoi.Value 'gan ten moi
    Set findvalue = findrange.Find(Tenmoi, LookIn:=xlValue, lookat:=xlWhole)   '!! @@  '
    If FindValue Is Nothing Then
           MsgBox "Nothing!"
   Else
           MsgBox FindValue.Address
  End If
  ' . . . .    '
 
Upvote 0
Set findvalue = findrange.Find(Tenmoi, LookIn:=xlValue, lookat:=xlWhole) '!! @@ '
Dạ biến findvalue này khai báo dạng "Range" em đã thử như của bác từ trước nhưng vẫn báo lỗi ạ.
Bác @SA_DQ có biết tại sao ko ạ?
 
Upvote 0
Báo lỗi ở dòng lệnh nào vậy?
Nội dung nó báo là gì?
. . . . .
 
Upvote 0
Lỗi out of range & lỗi ở dòng tìm kiếm theo find Bác @SA_DQ ạ.
screenshot_1678965429.pngscreenshot_1678965448.png
 
Upvote 0
Hình như bạn đang sai chính tả thì phải:
Mã:
LookIn : Không bắt buộc, khai báo dạng Variant. Đây là một dạng thông tin và thường có giá trị là xlValues.
& Theo 1 tài liệu nào đó thì xài thông số kia (XlFormulas) sẽ tăng tốc chút đĩnh trong nhiều trường hợp)

Kinh nghiệm của mình để đỡ sai chính tả là nhập xlvalues để VBE rà chính tả cho mình!
 
Upvote 0
Hình như bạn đang sai chính tả thì phải:
Mã:
LookIn : Không bắt buộc, khai báo dạng Variant. Đây là một dạng thông tin và thường có giá trị là xlValues.
& Theo 1 tài liệu nào đó thì xài thông số kia (XlFormulas) sẽ tăng tốc chút đĩnh trong nhiều trường hợp)

Kinh nghiệm của mình để đỡ sai chính tả là nhập xlvalues để VBE rà chính tả cho mình!
Ôi, cám ơn bác nhiều ạ, mà không hiểu sao em đã thử thêm chữ "s" vô từ trước rồi vấn báo lỗi nên em mới bỏ đi.
Cái bác nói sai chính tả em lại thêm "s" vào xlvalues theo code cũ thì lại chạy được
Haha, em cũng không hiểu nổi.
Cám ơn Bác đã trả lời vấn đề của em ạ.
 
Upvote 0
Xin chào các anh chị trong diễn đàn. Lỗi phát sinh trong file dưới khi Em Click đúp vào ô bất kỳ có dữ liệu trong sheets("DMHH"), lúc đổi tên thì phương thức findmethod bị lỗi.
Do không thành thạo phương thức tìm kiếm Find nên nhờ anh chị trong diễn đàn giúp chỉ ra lỗi sai trong code ạ.
Mã:
Private Sub CmdOk_Click()
   ...
    findvalue = findrange.Find(Tenmoi, LookIn:=xlValue, lookat:=xlWhole)
   
   ...
    End If
Xin cám ơn anh chị rất nhiều.
Cái dòng đó thử thay bằng dòng dưới xem nó có chạy không
findvalue = findrange.Find(What:=Tenmoi, LookIn:=xlFormulas, lookat:=xlWhole)
 
Upvote 0
Web KT

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

Back
Top Bottom