Nhờ cả nhà sửa giúp code trong ví dụ này

Liên hệ QC

vanhesing

Thành viên thường trực
Tham gia
12/8/10
Bài viết
223
Được thích
30
Chào cả nhà !!! xin giúp mình cái này
khi mình search tên chi nhánh / nhân viên ở ô E 5 của sheet CongNo thì nó chỉ ra được dữ liệu được nhập lần đầu tiên (những dòng đầu) ở sheet da ta thì nó ra đúng. nhưng nếu nhập dữ liệu tiếp theo cho sheet da ta ở những dòng tiếp theo với 1 tên chi nhánh/ nhân viên khác thì nó ko ra .
Mình ko biết code sai ở chổ nào , mình nghỉ nó bị giới hạn số dòng nhưng mình đã sữa vẫn không được .
Mong các cao nhân chỉ ra chổ sai giùm (mình đang học VBA chập chững nên còn gà lắm )
mình post nhầm bài
CÁC BẠN VÀO FILE CongNo-Ver03-3.rar NHA

THANKS
 

File đính kèm

Với file bạn đưa lên, khi chọn tại [E5] là Trần Trọng Tuấn Anh thì báo lỗi

Nhưng làm thế này trước khi chạy macro thì không báo lỗi:

Copy vùng 'G20:K23' đem đến 'G24:K27' thì macro sẽ hiện cho ta 4 dòng dữ liệu lọc được;

Nếu Cắt từ vùng 'G24:K27 đem xuống dưới 2 dòng thì macro sẽ cho kết quả khác;

Bạn tự nghĩ tại sao nó vậy, nghen!

Chắc bạn cũng mới quen với VBA, vậy chớ nên nhảy vô mảng sớm quá!. . .
 
Upvote 0
Chào cả nhà !!! xin giúp mình cái này
khi mình search tên chi nhánh / nhân viên ở ô E 5 của sheet CongNo thì nó chỉ ra được dữ liệu được nhập lần đầu tiên (những dòng đầu) ở sheet da ta thì nó ra đúng. nhưng nếu nhập dữ liệu tiếp theo cho sheet da ta ở những dòng tiếp theo với 1 tên chi nhánh/ nhân viên khác thì nó ko ra .
Mình ko biết code sai ở chổ nào , mình nghỉ nó bị giới hạn số dòng nhưng mình đã sữa vẫn không được .
Mong các cao nhân chỉ ra chổ sai giùm (mình đang học VBA chập chững nên còn gà lắm )
mình post nhầm bài
CÁC BẠN VÀO FILE CongNo-Ver03-3.rar NHA

THANKS
Thấy bạn post bài này liên tục cũng sốt ruột dùm bạn, hiểu lờ mờ thôi (có thể hiểu "trật lấc" không chừng), làm đại nhé
Mình viết code khác thôi chứ code mảng của bạn mình chẳng hiểu mô tê chi cả, híc
Mã:
Sub Loc()
 Dim Vung As Range, Ws As Worksheet, VungA, I, J
  Set Ws = Sheets("data")
   Range([a9], [a9].End(xlDown)).Resize(, 18).Clear
     Set Vung = Ws.Range(Ws.[c3], Ws.[c3].End(xlDown)).Offset(0, -2).Resize(, 18)
        With Vung
            .AutoFilter Field:=3, Criteria1:=[e5]
            .Offset(1, 0).SpecialCells(12).Copy [a9]
            .AutoFilter
        End With
            Set VungA = Range([e9], [e9].End(xlDown))
                For I = VungA.Rows.Count To 1 Step -1
                    If Application.WorksheetFunction.CountIf(VungA, VungA(I)) > 1 Then
                        J = Application.WorksheetFunction.Match(VungA(I), VungA, 0)
                        VungA(I).Offset(0, 7).Resize(, 5).Copy [e9].Offset(J - 1, 7).Resize(, 5)
                        Rows(I + 8).Delete
                    Else
                        Range([a9], [a9].End(xlDown)) = [row(A:A)]
                        Exit Sub
                    End If
                Next
End Sub
 

File đính kèm

Upvote 0
Thấy bạn post bài này liên tục cũng sốt ruột dùm bạn, hiểu lờ mờ thôi (có thể hiểu "trật lấc" không chừng), làm đại nhé
Mình viết code khác thôi chứ code mảng của bạn mình chẳng hiểu mô tê chi cả, híc
Mã:
Sub Loc()
 Dim Vung As Range, Ws As Worksheet, VungA, I, J
  Set Ws = Sheets("data")
   Range([a9], [a9].End(xlDown)).Resize(, 18).Clear
     Set Vung = Ws.Range(Ws.[c3], Ws.[c3].End(xlDown)).Offset(0, -2).Resize(, 18)
        With Vung
            .AutoFilter Field:=3, Criteria1:=[e5]
            .Offset(1, 0).SpecialCells(12).Copy [a9]
            .AutoFilter
        End With
            Set VungA = Range([e9], [e9].End(xlDown))
                For I = VungA.Rows.Count To 1 Step -1
                    If Application.WorksheetFunction.CountIf(VungA, VungA(I)) > 1 Then
                        J = Application.WorksheetFunction.Match(VungA(I), VungA, 0)
                        VungA(I).Offset(0, 7).Resize(, 5).Copy [e9].Offset(J - 1, 7).Resize(, 5)
                        Rows(I + 8).Delete
                    Else
                        Range([a9], [a9].End(xlDown)) = [row(A:A)]
                        Exit Sub
                    End If
                Next
End Sub
oh , bất ngờ lắm . thanks bạn nhiều nhiều
bạn chơi cả nút button à , vậy cũng tiện code bạn cũng ngắn hơn . có thể nói nó gần như đúng ý mình nhưng còn 3 cột cuối mình chưa kịp lập công thức nên mình chưa muốn nó hiện ra luôn mà trong bảng công nợ thật số liệu thật thì mình cần nó hiện ra .
thanks bạn !!!!
 
Upvote 0
Nhưng làm thế này trước khi chạy macro thì không báo lỗi:

Copy vùng 'G20:K23' đem đến 'G24:K27' thì macro sẽ hiện cho ta 4 dòng dữ liệu lọc được;

Nếu Cắt từ vùng 'G24:K27 đem xuống dưới 2 dòng thì macro sẽ cho kết quả khác;

Bạn tự nghĩ tại sao nó vậy, nghen!

Chắc bạn cũng mới quen với VBA, vậy chớ nên nhảy vô mảng sớm quá!. . .
mình đã mò mẫm cả đêm nhưng cũng không biết tại sao ! hic bạn nói đúng mình nên bắt đầu từ dễ trước . code đó do Thu Nghi viết cho mình và mình dựa vào đó để tìm hiểu thôi , chứ không phải mình viết . nhưng mình cũng tìm hiểu được 1 vài thứ hay như chèn cột mà không bị lỗi .......
còn cái vấn đề mình nói thì nếu dùng lệnh cut để thay đổi dữ liệu qua lại nhằm mục đích để test cái code đó thì nó báo lỗi nếu như nhập xuất bình thường thì nó vẫn ổn . Vấn đề là tại ..... lười nhập da ta quá.
Mình vẫn chưa hiểu hết được cái code này nên theo bạn mình có nên đưa nó vào sử dụng trong công việc ko ? lỡ mà dang sử dụng nó lỗi thì da ta chắc mất hết da ta mà mình còn khôn g biết nó lỗi chổ nào ?
thanks
 
Upvote 0
Mình vẫn chưa hiểu hết được cái code này nên theo bạn mình có nên đưa nó vào sử dụng trong công việc ko ? lỡ mà dang sử dụng nó lỗi thì da ta chắc mất hết da ta mà mình còn khôn g biết nó lỗi chổ nào ?
thanks
1/ Do bạn thay đổi cấu trúc Data nên mình có sửa lại code và mình đã gởi file trong bài hôm qua.
2/ Do đặc thù, theo bạn nói thì khi có giao TB thì mới có TB nhận về, vậy với TH của Trần Trọng Tuấn Anh do không thấy giao TB mà chỉ có trả về nên mình chưa bẫy lỗi (cụ thể như chưa nhập lấy đâu mà xúât). Với yêu cầu bạn nên đưa 1 data thống nhất và những tiêu chí chọn rõ ràng thì bài trên không khó lắm.
Bạn hãy xem lại bài tôi làm cho bạn hôm qua, và lấy code gán vào bài này cũng OK với điều kiện là phải có giao thì mới có trả. Nghĩa theo bài này là ít nhất 1 dòng cột G phải có dữ liệu phù hợp với tiêu chí tên=tên (cột C). Còn không thì thêm 1 câu bẫy lỗi.
 
Upvote 0
1/ do bạn thay đổi cấu trúc data nên mình có sửa lại code và mình đã gởi file trong bài hôm qua.
2/ do đặc thù, theo bạn nói thì khi có giao tb thì mới có tb nhận về, vậy với th của trần trọng tuấn anh do không thấy giao tb mà chỉ có trả về nên mình chưa bẫy lỗi (cụ thể như chưa nhập lấy đâu mà xúât). Với yêu cầu bạn nên đưa 1 data thống nhất và những tiêu chí chọn rõ ràng thì bài trên không khó lắm.
Bạn hãy xem lại bài tôi làm cho bạn hôm qua, và lấy code gán vào bài này cũng ok với điều kiện là phải có giao thì mới có trả. Nghĩa theo bài này là ít nhất 1 dòng cột g phải có dữ liệu phù hợp với tiêu chí tên=tên (cột c). Còn không thì thêm 1 câu bẫy lỗi.
chắc có lẽ là vậy, vì mình dùng tài liệu đọc nên chỉ hiểu 1 phần nhỏ trong code bạn viết , chỉnh sữa sơ so mà đúng thấy rất vui nhưng đi kèm là lỗi đó nên càng muốn tìm hiểu đi sâu hơn,để mình test lại đã , sẵn bạn chỉ mình sữa chổ nào để nó hiiện ra 3 cột cuối khi mình gán công thức hoàn chỉnh cho nó .
Thanks !!!
 
Upvote 0
Web KT

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

Back
Top Bottom