Vinod thường xuyên sử dụng các công cụ lọc nâng cao của Excel để sao chép dữ liệu đã lọc từ vị trí này sang vị trí khác. Trong một số trường hợp, anh ta muốn sao chép không chỉ nội dung ô mà còn cả nhận xét ô của các ô đáp ứng tiêu chí lọc. Anh ấy không tìm cách lọc dựa trên nhận xét mà chỉ sao chép nhận xét cùng với nội dung ô khi sử dụng khả năng lọc nâng cao của Excel.

Theo như chúng tôi có thể nói, không có cách nào để sao chép nhận xét bằng tính năng lọc nâng cao; chỉ nội dung ô được sao chép. Tuy nhiên, có thể dễ dàng sao chép các nhận xét bằng quy trình hai bước.

Trước tiên, hãy sử dụng tính năng lọc nâng cao để lọc dữ liệu của bạn, nhưng hãy đảm bảo rằng bạn thực hiện lọc tại chỗ; không chỉ định rằng bạn muốn thông tin được sao chép sang một vị trí khác. Bạn kết thúc với một danh sách được lọc, chỉ hiển thị các ô đáp ứng tiêu chí của bạn. Tiếp theo, chọn các ô được trả về bởi bộ lọc. Sau đó, bạn nên đảm bảo rằng Excel biết bạn chỉ muốn các ô hiển thị được chọn:

  1. Nhấn F5 để hiển thị hộp thoại Đi tới.

  2. Bấm Đặc biệt để hiển thị hộp thoại Đi đến Đặc biệt. (Xem Hình 1.)

  3. Đảm bảo rằng tùy chọn Chỉ ô hiển thị được chọn.

  4. Nhấp vào OK.

Với các ô hiển thị được chọn (những ô bị ẩn bởi bộ lọc không được chọn), bạn đã sẵn sàng cho bước thứ hai: Sao chép các ô sang vị trí khác bằng kỹ thuật chỉnh sửa thông thường. Kết quả là các chú thích được sao chép ngay cùng với nội dung ô.

Nếu bạn thực hiện tác vụ này khá nhiều và nó thậm chí gây lỗi cho bạn khi thực hiện hai bước, bạn có thể tự động hóa tác vụ. Macro sau sẽ áp dụng bộ lọc nâng cao tại chỗ, sao chép các ô hiển thị vào Clipboard, sau đó dán chúng (và nhận xét của chúng) vào một sổ làm việc mới:

Sub AdvancedFilter_AndCopyComments()

With Range("Database")

' filter the data range         .AdvancedFilter Action:=xlFilterInPlace, _           CriteriaRange:=Range("Criteria"), Unique:=False         ' copy visible cells only         .SpecialCells(xlCellTypeVisible).Copy     End With

' goto to another worksheet     Sheets("Sheet1").Select     ' and paste the copied data     With Range("A1")

.PasteSpecial xlPasteColumnWidths         .PasteSpecial xlPasteAll     End With

Application.CutCopyMode = False End Sub

Macro giả định rằng bạn có hai phạm vi được đặt tên được thiết lập: một cho dữ liệu được lọc (Cơ sở dữ liệu) và một cho các tiêu chí lọc (Criteria). Chạy macro và thông tin được lọc, nhận xét kết thúc trên Trang tính 1.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (3169) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: