Nhờ viết code lọc dữ liệu không trùng mã hàng hóa

Liên hệ QC

hongtu1803

Thành viên chính thức
Tham gia
1/2/13
Bài viết
69
Được thích
15
Nghề nghiệp
Luật sư
Nhờ các bác giúp!
Tôi muốn lọc dữ liệu như sau (file đính kèm)
Hàng hóa cùng nhóm sẽ có 1 mã hàng chung;
Tôi muốn khi nhập mã hàng mới vào sheet "MaHH" thì toàn bộ mã hàng sẽ được cập nhật qua sheet "KetQua", nhưng các mã hàng không trùng nhau.
Tôi muốn viết bằng VBA, vì số mã hàng rất nhiều và thường xuyên phát sinh.
thanks.
 

File đính kèm

  • Loc tu dong.xls
    14.5 KB · Đọc: 18
Nhờ các bác giúp!
Tôi muốn lọc dữ liệu như sau (file đính kèm)
Hàng hóa cùng nhóm sẽ có 1 mã hàng chung;
Tôi muốn khi nhập mã hàng mới vào sheet "MaHH" thì toàn bộ mã hàng sẽ được cập nhật qua sheet "KetQua", nhưng các mã hàng không trùng nhau.
Tôi muốn viết bằng VBA, vì số mã hàng rất nhiều và thường xuyên phát sinh.
thanks.

Xem thử file đính kèm xem thế nào !
* Nhập mã hàng vào cột C --> mở sheet KetQua --> ......<--------
 

File đính kèm

  • Loc tu dong.xls
    35.5 KB · Đọc: 99
Upvote 0
Không có gì : :-= < thành viên giúp đỡ nhau thôi mà >
* Bạn cần học thêm một số kiến thức VBA Excel cơ bản --> để có thể sử dụng hay tùy biến những đoạn code mình có được !
Mã:
Private Sub Worksheet_Activate()
    Sheet1.Range("C:C").AdvancedFilter 2, , [A1], 1
End Sub
Bác giải thích dòng code của bác với. Mình muốn hiểu nó, chính xác là cái thàng "advancedfilter...
ây????
 
Upvote 0
Mã:
Private Sub Worksheet_Activate()
    Sheet1.Range("C:C").AdvancedFilter 2, , [A1], 1
End Sub
Bác giải thích dòng code của bác với. Mình muốn hiểu nó, chính xác là cái thàng "advancedfilter...
ây????

*GPE bị lỗi hay sao ý ! --> chưa click gửi bài --> bài đã được đăng ???? <----------- @_@---------->
 
Lần chỉnh sửa cuối:
Upvote 0
Mã:
Private Sub Worksheet_Activate()
    Sheet1.Range("C:C").AdvancedFilter 2, , [A1], 1
End Sub
Bác giải thích dòng code của bác với. Mình muốn hiểu nó, chính xác là cái thàng "advancedfilter...
ây????
Bạn thử làm như sau :
* Bật record macro
* Thao tác lọc advanced Filter bằng tay
*Stop Macro --> là bạn có code ngay
các ký hiệu 2,, [A1] ,1 chỉ là ký hiệu viết tắt nó tương đương với xltFiltercopy,,copy range,unique ( đây là các mục lựa chọn trong advanced Filter)

==> nói chung:nếu bạn nắm rõ công cụ advanced Filter trên bảng tính thì việc viết code Adanced Filter không có gì khó khăn cả , - cứ đi rồi sẽ đến --
 
Lần chỉnh sửa cuối:
Upvote 0
trong viết code khi viết xong ......advancedfilter
nó hiện lên hướng dẫn thì ý mình muốn hỏi cái 2, , [A1], 1 bạn viết tương ứngvới cái hưỡng dẫn là gì?
ví như mình hiểu [A1] là nơi bắt đầu paste vậy con số 2, khoảng trắng, và con số 1 ý nghĩa như thế nào
 
Lần chỉnh sửa cuối:
Upvote 0
trong viết code khi viết xong ......advancedfilter
nó hiện lên hướng dẫn thì ý mình muốn hỏi cái 2, , [A1], 1 bạn viết tương ứngvới cái hưỡng dẫn là gì?
ví như mình hiểu [A1] là nơi bắt đầu paste vậy con số 2, khoảng trắng, và con số 1 ý nghĩa như thế nào

PHP:
Function AdvancedFilter(Action As XlFilterAction, [CriteriaRange], [CopyToRange], [Unique])
Nó tương đương với hộp thoại advancel filter :
*số 2 : là lựa chọn thứ 2 trong mục action --> xlFiltercopy
* ở đây không dùng criteriaRange nên tham số này bỏ qua
*Copy to range = [A1]
*Unique = true ( viết là 1 cũng được vì đây là là tham số boolean)
--> cách viết 2,,[A1],1 chỉ là 1 cách truyền tham số vào Advanced filter , nếu bạn không thích viết kiểu này thì có thể viết theo kiểu
AdvancedFilter Action:=xlfiltercopy,CopytoRange:=[A1],unique = true
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    249.1 KB · Đọc: 85
Upvote 0
PHP:
Function AdvancedFilter(Action As XlFilterAction, [CriteriaRange], [CopyToRange], [Unique])
Nó tương đương với hộp thoại advancel filter :
*số 2 : là lựa chọn thứ 2 trong mục action --> xlFiltercopy
* ở đây không dùng criteriaRange nên tham số này bỏ qua
*Copy to range = [A1]
*Unique = true ( viết là 1 cũng được vì đây là là tham số boolean)
--> cách viết 2,,[A1],1 chỉ là 1 cách truyền tham số vào Advanced filter , nếu bạn không thích viết kiểu này thì có thể viết theo kiểu
AdvancedFilter Action:=xlfiltercopy,CopytoRange:=[A1],unique = true

Cái chỗ mình bôi đỏ của bạn theo mình hiểu thì nó đã được khai báo trước đó rùi và nó đây phải không ban?

Sheet1.Range("C:C").AdvancedFilter 2, , [A1], 1
 
Upvote 0
Cái chỗ mình bôi đỏ của bạn theo mình hiểu thì nó đã được khai báo trước đó rùi và nó đây phải không ban?

Sheet1.Range("C:C").AdvancedFilter 2, , [A1], 1
Sheet1.Range("C:C")--> cái này là list range ( tức là vùng để lọc , không phải là criteria range -vùng tiêu chuẩn)
Hình như bạn chưa dùng advancedFilter để lọc thì phải ? --> bây giờ bạn không quan tâm đến code nữa, với file dữ liệu ở bài #1 --> bạn thử vào data --> advanced filter để lọc --> bạn thử điền các tham số trong hộp thoại xem !
 
Upvote 0
Sheet1.Range("C:C")--> cái này là list range ( tức là vùng để lọc , không phải là criteria range -vùng tiêu chuẩn)
Hình như bạn chưa dùng advancedFilter để lọc thì phải ? --> bây giờ bạn không quan tâm đến code nữa, với file dữ liệu ở bài #1 --> bạn thử vào data --> advanced filter để lọc --> bạn thử điền các tham số trong hộp thoại xem !

Mình đã làm thử bằng nut lênh advancedfilter:
nhưng cho mình hỏi thêm cai nào làm lên " mã không bị trùng"?
 
Upvote 0
tích vào ô : unique record only --> chọn những bản ghi duy nhất
code vba : ...advancedfilter Unique: = true

vậy tới giờ mình đã hiểu và có thể viết code VBA cho cái advancedfilter thank bạn nhé.
tính mình hiểu không rõ khó chịu lắm, mà hiểu không rõ dùng theo không biết đúng sai ra sao và vì sao ra được thế
 
Upvote 0
Web KT

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

Back
Top Bottom