Trích lọc danh sách duy nhất trong danh sách có chứa dòng rỗng (11 người xem)

Liên hệ QC

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

Code này đúng là làm cho file của em nhẹ đi rất nhiều, thanks bác
 
Vầy mới thật là "cực ngắn" đây:
PHP:
Sub Filter_Unique()
  [E1].CurrentRegion.ClearContents
  Range([A1], [A65536].End(xlUp)).AdvancedFilter 2, , [E1], True
  [E1].CurrentRegion.Sort [E1], 1, Header:=1, DataOption1:=1
End Sub
Chảo bác
Em cảm ơn bác về những hướng dẫn của chủ đề này. Em cũng làm thử như hướng dẫn, kết hợp với record marco để ra Code. Em không hiểu sao nó vẫn chưa lọc được danh sách duy nhất.
Ngoài ra vùng dữ liệu để lọc em không muốn "tham lam" lấy cả cột mà muốn chọn lựa thì thế nào ạ?

Mong được giúp đỡ

Link tải file: https://dl.dropbox.com/s/09oke3h6ss74scg/XuatNhapTon.xls?dl=1
 
Vầy mới thật là "cực ngắn" đây:
PHP:
Sub Filter_Unique()
  [E1].CurrentRegion.ClearContents
  Range([A1], [A65536].End(xlUp)).AdvancedFilter 2, , [E1], True
  [E1].CurrentRegion.Sort [E1], 1, Header:=1, DataOption1:=1
End Sub
Chảo bác
Em cảm ơn bác về những hướng dẫn của chủ đề này. Em cũng làm thử như hướng dẫn, kết hợp với record marco để ra Code. Em không hiểu sao nó vẫn chưa lọc được danh sách duy nhất.
Ngoài ra vùng dữ liệu để lọc em không muốn "tham lam" lấy cả cột mà muốn chọn lựa thì thế nào ạ?

Mong được giúp đỡ

Link tải file: https://dl.dropbox.com/s/09oke3h6ss74scg/XuatNhapTon.xls?dl=1

Điều kiện để dùng Advanced Filter là DỮ LIỆU PHẢI CÓ TIÊU ĐỀ
Nếu bạn cố tình chọn vùng dữ liệu không bao gồm tiêu đề thì Excel sẽ tự lấy cell đầu làm tiêu đề ---> dẫn đến cái tiêu đề (giả mạo) này có thể bị trùng với 1 em nào đó
Code sửa lại:
Mã:
Sub Unique()
  Sheets("Nhap").Range("D17:D1100").AdvancedFilter 2, , Sheets("TonKho").Range("C5"), True
End Sub
 
Vầy mới thật là "cực ngắn" đây:
PHP:
Sub Filter_Unique()
  [E1].CurrentRegion.ClearContents
  Range([A1], [A65536].End(xlUp)).AdvancedFilter 2, , [E1], True
  [E1].CurrentRegion.Sort [E1], 1, Header:=1, DataOption1:=1
End Sub
Chảo bác
Em cảm ơn bác về những hướng dẫn của chủ đề này. Em cũng làm thử như hướng dẫn, kết hợp với record marco để ra Code. Em không hiểu sao nó vẫn chưa lọc được danh sách duy nhất.
Ngoài ra vùng dữ liệu để lọc em không muốn "tham lam" lấy cả cột mà muốn chọn lựa thì thế nào ạ?

Mong được giúp đỡ

Link tải file: https://dl.dropbox.com/s/09oke3h6ss74scg/XuatNhapTon.xls?dl=1

Nếu vậy bạn nên dùng Dictionary thì ngon lành mà. Cũng ngắn gọn mà.
Hoặc xử theo kiểu bình dân là sau khi lọc xong xóa nội dung E1 đi, hoặc cut từ E2 đến dòng cuối cột E dán đè lên E1
 
Lần chỉnh sửa cuối:
Code sửa lại:
Mã:
Sub Unique()
  Sheets("Nhap").Range("D17:D1100").AdvancedFilter 2, , Sheets("TonKho").Range("C5"), True
End Sub

Em dùng code trên của bác thay cho
Mã:
 Sheets("Nhap").Range("D18:D1100").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("C6"), Unique:=True
thì thấy: 1. Lần đầu báo lỗi như hình gửi kèm. 2. Chạy lần 2 thì không báo lỗi nhưng trong sheet TonKho các dữ liệu trong sheet bị xóa sạch trước khi danh sách lọc xuât hiện. Ẹc ẹc
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    12 KB · Đọc: 105
Em dùng code trên của bác thay cho
Mã:
 Sheets("Nhap").Range("D18:D1100").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("C6"), Unique:=True
thì thấy: 1. Lần đầu báo lỗi như hình gửi kèm. 2. Chạy lần 2 thì không báo lỗi nhưng trong sheet TonKho các dữ liệu trong sheet bị xóa sạch trước khi danh sách lọc xuât hiện. Ẹc ẹc

Đoán: Nếu bạn dùng thêm đoạn [C6].CurrentRegion.Sort [C6], 1, Header:=0, DataOption1:=1 thì dữ liệu của bạn sẽ... tè lè luôn (và báo lỗi)
Muốn sort thì phải vầy:
Mã:
Sub Unique()
  With Sheets("TonKho")
    Sheets("Nhap").Range("D17:D1100").AdvancedFilter 2, , .Range("C5"), True
    .Range("A6:N1000").Sort .[C6], 1, Header:=0
  End With
End Sub
 
Lần chỉnh sửa cuối:
Đoán: Nếu bạn dùng thêm đoạn [C6].CurrentRegion.Sort [C6], 1, Header:=0, DataOption1:=1 thì dữ liệu của bạn sẽ... tè lè luôn (và báo lỗi)
Muốn sort thì phải vầy:
Mã:
Sub Unique()
  With Sheets("TonKho")
    Sheets("Nhap").Range("D17:D1100").AdvancedFilter 2, , .Range("C5"), True
    .Range("A6:N1000").Sort .[C6], 1, Header:=0
  End With
End Sub

Đúng như bác "đọc vị". Do em cố cài cắm code để sort nên nó báo lỗi thế dù chả có ô nào được Merge (nếu có em cũng chủ động Unmerge)
Em rất thích cách bác giải thích ý nghĩa của từng dòng lệnh hay mã lệnh (dù nó rất đơn giản).
 
Xác định bằng công thức mảng

Em xin góp thêm 1 cách

PHP:
=Sheet1!$A$3:$A$100
PHP:
DK=IF(IF(ISERROR((MATCH(DL,DL,0)=ROW(INDIRECT("$1:"&ROWS(DL))))*(DL<>"")),0,(MATCH(DL,DL,0)=ROW(INDIRECT("$1:"&ROWS(DL))))*(DL<>"")),ROW(INDIRECT("$1:"&ROWS(DL))),"")

Công thức xác định:

PHP:
=IF(ROWS($1:1)<=COUNT(DK),INDEX(DL,SMALL(DK,ROWS($1:1))),"")
 

File đính kèm

Giúp tạo danh sách ngày tháng duy nhất!

Gửi các bạn trên GPE!

Mình có 2 danh sách ngày tháng nằm ở sheet1 và sheet2, mình muốn từ 2 danh sách đó tạo ra 1 danh sách ngày tháng duy nhất tại sheet3.

Mong các bạn giúp đỡ!
 

File đính kèm

Web KT

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

Trả lời
42
Đọc
17K
Back
Top Bottom