Dùng macro lọc dữ liệu bảng trong excel

Lập báo cáo chi tiết như thế nào?Làm cầm nào để mang tài liệu xuất phát điểm từ 1 bảng theo hồ hết yên cầu nhất định?Cách trích xuất tài liệu theo điều kiện để đưa sang 1 bảng khác?

Bài viết sau đây sẽ giúp đỡ các bạn vấn đáp rất nhiều câu hỏi đó. Đồng thời chúng ta có thể mày mò ra một giải pháp làm bắt đầu rất hay lúc sử dụng VBA vào việc thanh lọc dữ liệu vào Báo cáo chi tiết.

You watching: Dùng macro lọc dữ liệu bảng trong excel

* Chúng ta bao gồm đòi hỏi sau: Dựa vào bảng dưới đây, hãy đem dữ liệu sinh hoạt Bảng cụ thể dựa theo điều kiện thay đổi ở các ô từ I2:I4 (Thời gian với nhà cung cấp)

*


Xem nhanh


Cách 1: Ghi macro các thao tác

Tại tab Developer, các bạn chọn nút ít lệnh Record Macro

*

Thao tác 1: Chọn chức năng Data / Filter mang lại bảng dữ liệuThao tác 2: Lọc cột Nhà cung ứng theo thương hiệu Nhà cung cấp ở ô I4Thao tác 3: Lọc ngày ở cột Ngày theo thông báo ngày ở ô I2 và I3

*


Dù vẫn có phần mềm, tuy vậy kĩ năng Excel vẫn rất là đặc biệt quan trọng cùng với kế toán, chúng ta đã vững Excel chưa? Hãy để tôi giúp cho bạn, đăng ký khoá học Excel:


*


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

Cách 2: Đọc văn bản macro

Mnghỉ ngơi cửa sổ VBA, họ xem ngôn từ Macro vừa ghi được

*

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

Nội dung này là : Chọn vùng ô tự A2 đến F2, msinh sống công dụng Auto lớ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 sinh sống cột thứ 2 (cột NCC), ĐK thanh lọc là “Anh Tuấn” => VBA không hỗ trợ giờ việt đầy đầy đủ nên có lốt ?

Đừng bỏ lỡ: lớp học Excel kế toán thù với các chăm gia

Cách 3: Tinch gọn macro nhằm sử dụng

Cần thay đổi điều kiện lọc vào VBA để link tới vùng điều kiện trong Bảng chi tiết => Khi kia thay đổi dữ liệu vào Bảng chi tiết thì macro sẽ tự đụng lọc theo nội dung kia.

Chúng ta chú ý vào những vùng ĐK (Criteria1, Criteria2) ở 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”

Thay “Anh Tu?n” bằng ô I4 (chiếc 4, cột 9, sheet 1) trong sheet1 như 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ì quý hiếm tháng ngày trong Excel về bản chất là dạng số yêu cầu có thể chuyển đổi về dạng CLng(…)

* Tinc gọn gàng cùng 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

Bước 4: Copy tài liệu cùng paste quý phái bảng cụ thể và hoàn thành code

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

Code đến đoạn này nhỏng sau: (Các bạn có thể record macro mang lại thao tác làm việc này rồi chọn lọc code)

Vì bảng chi tiết chỉ việc đem câu chữ Tên sản phẩm, con số, solo giá bán, thành tiền yêu cầu nội dung vẫn mang từ cột C cho tới cột F, bắt đầu từ ô C3 tới F47 (cuối bảng). Chỉ copy đều quý giá xuất hiện 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 dữ liệu dạng Value (giá trị)

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

Sau khi Paste tài liệu dứt, họ đang bỏ lệnh Copy cùng Filter đi bởi 2 dòng lệnh:

Application.CutCopyMode = False ‘Hủy quăng quật chế độ Cut Copy trong excel (khi chúng ta Cut/Copy thì Excel sẽ lưu nội dung kia vào bộ nhớ, và tô con đường viền nhấp nháy sinh sống nội dung kia. Lúc ko dùng đến chúng ta có thể bỏ đi)

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

Bước 5: Kiểm tra code bởi phím F8

Sau khi hoàn thành xong xuôi code vào VBA, họ bấm nút ít F8 nhằm soát sổ xem code kia hoạt hễ ra sao

Nếu code hoạt động đúng thì đang ra tác dụng như sau:

*

Cách 6: Gán macro vào sự kiện thay đổi điều kiện sinh hoạt vùng ô I2:I4

Trong hành lang cửa số VBA, các bạn double clichồng vào Sheet1

*

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

*

Ở phía trên chúng ta quan tâm đến sự thay đổi dữ liệu ở ô I2:I4 mới làm tác động tới report chi tiết. Do đó chúng ta chỉ xét sự thay đổi sống vùng này.

See more: Top 4 Bài Cảm Nhận Về Bức Tranh Mùa Thu Trong Bài Thu Điếu, Hay Chọn Lọc

Thao tác như sau:

*

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

Lúc thay đổi dữ liệu sinh hoạt vùng I2:I4 thì chúng ta ước ao update nội dung của report cụ thể. Do đó họ vẫn hotline ra Macro vừa hoàn thành ở đoạn bên trên.

* Bổ sung:

Do mỗi ĐK sẽ cho tác dụng nhiều / ít khác nhau, do đó để rất có thể xác xác định rõ hiệu quả của Bảng cụ thể chỉ đúng với điều kiện được chọn, bọn họ nên có tác dụng sạch mát vùng Bảng chi tiết trước khi dán dữ liệu vào.

Đặt cái Code xóa tài liệu lên đầu Macro:

*

range(“H6:K100”).ClearContents là làm cho sạch mát tài liệu vào vùng H6:K100 (là vùng hiệu quả dữ liệu của bảng đưa 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 gàng code từ làm việc RecordCách phát âm phát âm code trong VBACách gán Macro vào sự khiếu nại xảy ra vào Sheet (ví dụ với sự khiếu nại thay đổi một số văn bản vào sheet)Trình trường đoản cú xúc tích của câu lệnh vào VBA

Trong các bước bọn họ vẫn gặp gỡ nên đều vấn đề này không ít, được áp dụng các vào thực tế.

See more: Những Mẹo Nhỏ Để Có Bản Photo, Scan, In File Ảnh Không Bị Đen

Bài viết này sẽ tạo nên tiền đề cho chúng ta làm quen thuộc với VBA, bí quyết học tập VBA dễ ợt với làm cho thân quen dần dần với chuyên môn VBA góp tự động hóa khi sử dụng Excel.