Nhờ sửa code VBA (1 người xem)

Liên hệ QC

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

swalowbird

Thành viên mới
Tham gia
22/5/16
Bài viết
49
Được thích
1
Em có code này , bị báo lỗi Object not defined , mọi người sửa giúp em
Em muốn làm tờ phiếu giao nhận , lấy mã từ sheet1 , tìm kiếm trong sheet data , sau đó insert trong sheet pgn
thanks !

Đang ko biết lỗi ở đâu !!!!!!

Sub bbbb()
Dim k As Integer
Dim rng1 As Range
Dim rng2 As Range
Dim tim As Range
Dim cell As Range
Set rng1 = Application.InputBox(Prompt:="chon vung nhap du lieu ", Title:="Range Select", Type:=8)
k = rng1.Rows.Count
Set rng2 = rng1.Range(Cells(1, 1), Cells(k, 1))
rng2.Select


For Each cell In rng2

Set tim = Worksheets("data").Application.Find(cell, , xlFormulas, xlWhole)

If Not tim Is Nothing Then

tim.EntireRow.Copy

Worksheets("pgn").Range("A10000").End(xlUp).EntireRow.Insert Shift:=xlDown

End If

Next cell

End Sub
 

File đính kèm

Thứ nhất: Bạn có 3 trang tính;
Trước khi chạy Code bạn cần báo cho VBE biết bạn đang ở trang tính nào.

Thứ hai, khi mình thử chạy thì báo lỗi ở dòng này:
PHP:
  Set tim = Worksheets("data").Application.Find(Cell, , xlFormulas, xlWhole)
mã lỗi là 1004

Vế phương thức FIND() thì bạn nên tham khảo bài tổng quan thêm đi.
Ở đây bạn bắt nó đi tìm cả 1 trang tính là không hay ho chút nào;
Thường trong 1 CSDL phải đi tìm thì tìm trên 1 trường/cột (nhiều lắm là trên 2 trường là cùng)

Nên viết tường mình; Là mình thì mình sẽ viết là 'Cell.Value' thay vì 'Cell' như của bạn; Bạn chỉ biết "tiết kiệm" cho bạn thôi sao;

Thứ ba: Cách bạn viết chưa ngừa lỗi; & khi lỗi sẫy ra không biết đâu là lần!

Ví dụ: Nếu người dùng không chọn Rng1 thì sao? Lúc đó làm gì có Rng2?
Hay chọn 1 vùng tuyền các ô trống thì sao?
& như nói bạn đầu, chọn vùng này ở trang tính nào.

Cần phải biết đi vững mới bắt đầu tập chạy bạn à

Mong bạn sẽ không dận vì câu nói nặng lời này của mình.
 
Upvote 0
Bạn cân mô tả lại công việc bạn đang muốn làm. Kết quả đạt được là gì.
 
Upvote 0
có khi mã này , có khi mã khác ,nên em mới chọn cả 1 dòng bên sheet date để insert vào form pgn mà ,

Bác sửa em lỗi object với , sửa mãi ko được .
 
Upvote 0
Bạn xem file
PHP:
Sub GPEFind()
Dim K As Integer
Dim Rng1 As Range, Rng2 As Range, Tim As Range, Cell As Range, Sh As Worksheet

Sheet1.Select
Sheets("pgn").Range("C10:l20").ClearContents
Set Rng1 = Application.InputBox(Prompt:="Chon Vung Nhap Du Lieu ", Title:="Range Select", Type:=8)
If Not Rng1 Is Nothing Then
    K = Rng1.Rows.Count
    Set Rng1 = Rng1(1).Resize(K)
    Set Sh = ThisWorkbook.Worksheets("Data")
    Set Rng2 = Sh.Columns("B:C")
    For Each Cell In Rng1
        Set Tim = Rng2.Find(Cell.Value, , xlFormulas, xlWhole)
        If Not Tim Is Nothing Then
            With Sh.Cells(Tim.Row, "A")
                Sh.Range(.Offset(), .End(xlToRight)).Copy Destination:=Sheets("pgn").[c22].End(xlUp).Offset(1)
            End With
        End If
    Next Cell
    MsgBox "Xong Ròi!"
 Else
    MsgBox "Cút Ngay!"
 End If
End Sub
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom