Dùng Macro Lọc Dữ Liệu Bảng Trong Excel

Lập report chi tiết như thế nào?Làm thế nào để mang tài liệu xuất phát điểm từ một bảng theo những đòi hỏi nhất định?Cách trích xuất dữ liệu theo điều kiện để gửi qua một bảng khác?

Bài viết sau trên đây sẽ giúp đỡ bạn vấn đáp phần lớn câu hỏi đó. Đồng thời bạn cũng có thể khám phá ra một giải pháp làm mới rất hay lúc áp dụng VBA vào câu hỏi thanh lọc dữ liệu vào Báo cáo cụ thể.

Bạn đang xem: Dùng macro lọc dữ liệu bảng trong excel

* Chúng ta có tận hưởng sau: Dựa vào bảng dưới phía trên, hãy đem dữ liệu sinh sống Bảng chi tiết dựa theo ĐK thay đổi làm việc các ô tự I2:I4 (Thời gian và đơn vị cung cấp)

*


Xem nhanh


Cách 1: Ghi macro những thao tác

Tại tab Developer, chúng ta chọn nút ít lệnh Record Macro

*

Thao tác 1: Chọn tính năng Data / Filter mang đến bảng dữ liệuThao tác 2: Lọc cột Nhà cung cấp theo tên Nhà cung cấp ở ô I4Thao tác 3: Lọc ngày làm việc cột Ngày theo báo cáo ngày ở ô I2 và I3

*


Dù sẽ có ứng dụng, mà lại tài năng Excel vẫn rất là quan trọng đặc biệt cùng với kế toán thù, các bạn đang vững vàng Excel chưa? Hãy nhằm tôi giúp cho bạn, ĐK khoá học tập Excel:


*


Hướng dẫn học Excel cơ bản

Bước 2: Đọc ngôn từ macro

Mnghỉ ngơi cửa sổ VBA, họ coi nội dung Macro vừa ghi được

*

Range(“A2:F2”).SelectSelection.AutoFilter

Nội dung này là : Chọn vùng ô trường đoản cú A2 mang đến F2, msinh sống công dụng Aulớn filter

ActiveSheet.Range(“$A$2:$F$47″).AutoFilter Field:=2, Criteria1:=”Anh Tu?n”

Nội dung này là: Lọc dữ liệu ngơi nghỉ cột thứ 2 (cột NCC), ĐK thanh lọc là “Anh Tuấn” => VBA ko cung cấp giờ việt đầy đầy đủ cần tất cả vết ?

Đừng quăng quật lỡ: lớp học tập Excel kế toán cùng với những chăm gia

Bước 3: Tinch gọn macro để sử dụng

Cần thay đổi ĐK thanh lọc trong VBA để liên kết tới vùng điều kiện vào Bảng cụ thể => Khi đó thay thay đổi dữ liệu trong Bảng cụ thể thì macro vẫn tự đụng lọc theo nội dung đó.

Chúng ta chú ý vào những vùng ĐK (Criteria1, Criteria2) nghỉ ngơi trong câu lệnh vào VBA

* Câu lệnh thanh lọc NCC

ActiveSheet.Range(“$A$2:$F$47″).AutoFilter Field:=2, Criteria1:=”Anh Tu?n”

Txuất xắc “Anh Tu?n” bằng ô I4 (mẫu 4, cột 9, sheet 1) vào sheet1 nhỏng sau:

ActiveSheet.Range(“$A$2:$F$47”).AutoFilter Field:=2, Criteria1:=Sheet1.Cells(4, 9).value

* Câu lệnh lọc Ngày

ActiveSheet.Range(“$A$2:$F$47”).AutoFilter Field:=1, Criteria1:= _“>=” và CLng(Sheet1.Cells(2, 9).value), Operator:=xlAnd, Criteria2:=”

Vì cực hiếm tháng ngày trong Excel về bản chất là dạng số phải có thể chuyển thay đổi về dạng CLng(…)

* Tinch gọn với hoàn thiện Code VBA

Range(“A2:F2”).Select + Selection.AutoFilter = Range(“A2:F2”).AutoFilter

Range(“B2”).Select Dòng này rất có thể bỏ đi

Cách 4: Copy dữ liệu với paste sang bảng cụ thể với hoàn thành code

Từ bảng dữ liệu đã được lọc, chúng ta copy cục bộ kết quả vẫn lọc được rồi dính vào Bảng bỏ ra tiết để lấy tác dụng.

Code đến bước này nlỗi sau: (Các chúng ta có thể record macro cho làm việc này rồi chọn lọc code)

Vì bảng cụ thể chỉ cần đem câu chữ Tên hàng, con số, đối kháng giá bán, thành tiền đề nghị văn bản đang đem từ bỏ cột C tới cột F, bắt đầu từ ô C3 cho tới F47 (cuối bảng). Chỉ copy phần nhiều giá trị xuất hiện thêm sau thời điểm lọc

ActiveSheet.Range(“$C$3:$F$47”).SpecialCells(xlVisible).Copy

Paste dữ liệu: Dán vào Bảng cụ thể, bắt đầu từ ô H6, chỉ dán tài liệu dạng Value (giá bán trị)

Range(“H6”).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False

Sau Lúc Paste tài liệu hoàn thành, chúng ta đã bỏ lệnh Copy và Filter đi bởi 2 cái lệnh:

Application.CutCopyMode = False ‘Hủy vứt chế độ Cut Copy trong excel (khi bạn Cut/Copy thì Excel đã lưu nội dung đó trong bộ lưu trữ, với tô đường viền nhấp nháy nghỉ ngơi nội dung kia. Khi ko dùng cho chúng ta có thể bỏ đi)

Range(“A2:F2”).AutoFilter ‘Hủy quăng quật chế độ Filter. Lặp lại thao tác làm việc này để diệt vứt chế độ filter lúc không dùng cho nữa (trả về trạng thái ban đầu lúc chưa cần sử dụng Filter)

Cách 5: Kiểm tra code bằng phím F8

Sau Lúc kết thúc hoàn thành code vào VBA, họ bấm nút ít F8 để khám nghiệm xem code kia hoạt cồn ra sao

Nếu code hoạt động đúng thì đã ra hiệu quả nhỏng sau:

*

Cách 6: Gán macro vào sự kiện thay đổi điều kiện làm việc vùng ô I2:I4

Trong cửa sổ VBA, chúng ta double cliông xã vào Sheet1

*

Trong cửa sổ VBA thao tác làm việc với Sheet1, lựa chọn sự kiện Change (thay đổi nội dung). khi chúng ta thay thay đổi nội dung trong sheet này thì đang có điều gì xảy ra.

*

Ở đây bọn họ quan tâm tới việc thay đổi dữ liệu ở ô I2:I4 new làm tác động tới báo cáo cụ thể. Do kia bọn họ chỉ xét sự thay đổi làm việc vùng này.

Xem thêm: Những Phím Tắt Phóng To Thu Nhỏ Trong Excel, Phím Tắt Phóng To Thu Nhỏ Trong Excel

Thao tác nlỗi sau:

*

Dòng lệnh “If Not Application.Intersect(Range(“I2:I4”), Range(Target.Address)) Is Nothing Then” được đọc là: Nếu tất cả sự thay đổi dữ liệu ở trong vùng I2:I4 xảy ra thì…

Lúc thay đổi dữ liệu sống vùng I2:I4 thì chúng ta ước ao cập nhật câu chữ của report cụ thể. Do đó bọn họ sẽ gọi ra Macro vừa hoàn thành tại vị trí bên trên.

* Bổ sung:

Do mỗi điều kiện sẽ mang lại tác dụng các / không nhiều khác biệt, do đó nhằm hoàn toàn có thể xác xác định rõ hiệu quả của Bảng chi tiết chỉ đúng với điều kiện được lựa chọn, họ bắt buộc làm sạch vùng Bảng cụ thể trước lúc dán dữ liệu vào.

Đặt dòng Code xóa dữ liệu lên đầu Macro:

*

range(“H6:K100”).ClearContents là làm cho sạch sẽ tài liệu trong vùng H6:K100 (là vùng công dụng dữ liệu của bảng bỏ ra tiết)

Kết luận

Những câu chữ học được qua bài này là:

Cách Record macro cùng tinch gọn code từ bỏ thao tác làm việc RecordCách gọi hiểu code trong VBACách gán Macro vào sự kiện xảy ra vào Sheet (ví dụ với sự kiện thay thay đổi một số trong những câu chữ trong sheet)Trình từ bỏ xúc tích của câu lệnh vào VBA

Trong quá trình bọn họ đã chạm mặt nên phần lớn vấn đề này rất nhiều, được vận dụng các vào thực tiễn.

Bài viết này sẽ khởi tạo tiền đề mang lại các bạn làm cho quen thuộc cùng với VBA, cách học VBA tiện lợi với làm quen dần dần với nghệ thuật VBA giúp tự đụng hóa Khi sử dụng Excel.