[Xin giúp đỡ] Thêm 1 dữ liệu vào 1 cột từ User Form, kiểm tra từ cột cần thêm nếu trùng lặp thì báo và không thêm dữ liệu! (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

gameonly308

Thành viên hoạt động
Tham gia
4/5/09
Bài viết
197
Được thích
10
Em có code kiểm tra cái dữ liệu trong textbox là add_cpu_id_txt
Em muốn kiểm tra xem trong cột thêm dữ liệu tại Sheet2 cột A, nếu không trùng thì thêm dữ liệu, nếu trùng dữ liệu rồi thì thông báo.
Khi em chạy code thì toàn bị báo lỗi:
Runtime error '9'
Subscript out of range
Khi debug ra thì nó tô màu vàng ở dòng này
Set FoundCell = Sheet2.Range("A5:A100").Find(Search, LookIn:=xlValue, lookat:=xlWhole)
Mong các bác đi qua chính lại giúp em với ạ, em cảm ơn!
Mã:
Private Sub add_cpu_id_cmb_Click()
If add_cpu_id_txt.Value = "" Then
MsgBox "Please insert right Value!", vbOKOnly, "Warning!"
Else
Dim dong_cuoi_cpu_id As Long
Dim FoundCell As Range
Dim Search As String
dong_cuoi_cpu_id = Sheet2.Cells(Rows.Count, "A").End(xlUp).Row + 1

Search = add_cpu_id_txt.Value
Set FoundCell = Sheet2.Range("A5:A100").Find(Search, LookIn:=xlValue, lookat:=xlWhole)
    If FoundCell Is Nothing Then
    Sheet2.Range("A" & dong_cuoi_cpu_id).Value = add_cpu_id_txt.Value
    MsgBox "Data [" & add_cpu_id_txt.Value & "] added succesfull!", vbOKOnly, "Succesfull!"
        Else
        MsgBox "CPU ID is available"
    End If
End If
End Sub
 
Vì không tiện tạo Form theo ý của bạn, mình chỉnh thành macro sao & OK:
PHP:
Private Sub add_cpu_id_cmb_Click()
Const TB As String = "GPE.COM Xin Thông Báo!"
Dim Search As String:                                               Dim dong_cuoi_cpu_id As Long
Dim FoundCell As Range

Search = InputBox("Hay Nhâp 1 Ký Sô: ", TB, "35")
'If add_cpu_id_txt.Value = "" Then     '
If Search = "" Then
    MsgBox "Please insert right Value!", vbOKOnly, TB
Else
    dong_cuoi_cpu_id = Sheet2.Cells(Rows.Count, "A").End(xlUp).Row + 1
'    Search = add_cpu_id_txt.Value      '
'    Search = InputBox("Hay Nhâp 1 Ký Sô: ", TB, "35")                  '
    Set FoundCell = Sheet2.Range(Sheet2.[A5], Sheet2.Range("A5").End(xlDown)).Find(Search, , xlValues, xlWhole)
    If FoundCell Is Nothing Then
        Sheet2.Range("A5").End(xlDown).Offset(1).Value = Search              'add_cpu_id_txt.Value   '
        MsgBox "Nhâp Xong!", , TB
    Else
        MsgBox "CPU ID is available"
    End If
End If
End Sub
 
Có bác nào qua giúp em với ạ!
Em muốn biết đoạn code của em lý do vì sao báo lỗi, để lần sau gặp còn sửa ạ!
 
Lần chỉnh sửa cuối:
Em muốn biết đoạn code của em lý do vì sao báo lỗi, để lần sau gặp còn sửa ạ!
Bạn đang sai chính tả mà!; Của mình là:
Find(Search, , xlValues, xlWhole)
(2) Mấy cái hằng xlValue, xlWhole bạn chưa khai báo nó thì báo lỗi thôi.
(1) Đổi lại thành số: xlValue: -4163, xlWhole:1
(1) Để vậy trực quan hơn còn sai chính tả nữa là!
(2) Các hằng này có người khai báo giúp ta rồi.
 
Lần chỉnh sửa cuối:
Bạn đang sai chính tả mà!; Của mình là:
Find(Search, , xlValues, xlWhole)

(1) Để vậy trực quan hơn còn sai chính tả nữa là!
(2) Các hằng này có người khai báo giúp ta rồi.
Em cảm ơn bác. Em muốn chuyển password đăng nhập thành dạng mã hash trước khi ghi vào file excel thì làm thế nào bác nhỉ, bác có biết bài viết nào về vấn đề đó bảo em với ạ. Viết hoàn toàn = code VBA trên user form!
 
Web KT

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

Back
Top Bottom