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

Bài viết sau đây sẽ giúp đỡ bạn trả lời những câu hỏi đó. Đồng thời chúng ta có thể khám phá ra một cách làm mới rất lôi cuốn khi sử dụng VBA vào việc lọc dữ liệu vào report chi tiết.You watching: dùng macro lọc tài liệu bảng vào excel

* chúng ta có yêu ước sau: phụ thuộc bảng dưới đây, hãy đem dữ liệu ở Bảng cụ thể dựa theo điều kiện thay đổi ở các ô từ bỏ I2:I4 (Thời gian và nhà cung cấp)


*

Xem nhanh

Bước 1: Ghi macro những thao tác

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


*

Thao tác 1: Chọn chức năng Data / Filter mang đến bảng dữ liệuThao tác 2: thanh lọc cột Nhà cung cấp theo tên công ty cung cấp ở ô I4Thao tác 3: thanh lọc ngày ở cột Ngày theo tin tức ngày ở ô I2 với I3


*

Dù đã có phần mềm, nhưng năng lực Excel vẫn cực kỳ quan trọng cùng với kế toán, các bạn đã vững Excel chưa? Hãy nhằm tôi góp bạn, đk khoá học tập Excel:


*

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

Bước 2: Đọc nội dung macro

Mở hành lang cửa số VBA, bọn họ xem văn bản Macro vừa ghi được


*

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

Nội dung này là : chọn vùng ô từ A2 đến F2, mở chức năng tự động 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 ở cột thứ 2 (cột NCC), điều khiếu nại lọc là “Anh Tuấn” => VBA không hỗ trợ tiếng việt đầy đủ nên gồm dấu ?

Đừng vứt lỡ: lớp học tập Excel kế toán với các chuyên gia

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

Cần thay đổi điều khiếu nại lọc trong VBA để link tới vùng điều khiếu nại trong Bảng chi tiết => Khi đó thay đổi dữ liệu trong Bảng chi tiết thì macro đang tự động thanh lọc theo nội dung đó.

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

Chúng ta chú ý vào những vùng điều khiếu nại (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 (dòng 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:= _“>=” & CLng(Sheet1.Cells(2, 9).value), Operator:=xlAnd, Criteria2:=”Vì quý hiếm ngày mon trong Excel về bản chất là dạng số nên bao gồm thể chuyển đổi về dạng CLng(…)

* Tinh gọn và triển khai xong Code VBA

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

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

Bước 4: Copy tài liệu và paste sang trọng bảng cụ thể và hoàn thành code

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

Code cho công đoạn này như sau: (Các chúng ta có thể record macro cho làm việc này rồi tinh lọc code)

Vì bảng đưa ra tiết chỉ việc lấy câu chữ Tên hàng, số lượng, đơn giá, thành tiền buộc phải nội dung đã lấy 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 đều giá trị xuất hiện sau khi lọc

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

Paste dữ liệu: dán vào Bảng đưa ra tiết, bắt đầu từ ô H6, chỉ dán tài liệu dạng Value (giá trị)

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

Sau khi Paste dữ liệu xong, chúng ta sẽ vứt lệnh Copy và Filter đi bằng 2 chiếc lệnh:

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

Range(“A2:F2”).AutoFilter ‘Hủy bỏ chế độ Filter. Lặp lại làm việc này để hủy bỏ chế độ filter khi không dùng đến nữa (trả về tâm lý ban đầu khi chưa cần sử dụng Filter)

Bước 5: soát sổ code bằng phím F8

Sau khi xong xong code vào VBA, chúng ta bấm nút F8 để bình chọn xem code đó hoạt động ra sao

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


Bước 6: Gán macro vào sự khiếu nại thay đổi điều kiện ở vùng ô I2:I4

Trong hành lang cửa số VBA, chúng ta double click vào Sheet1


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

Xem thêm: Đang Lúc Nửa Đêm Tôi Đánh Mất Người Yêu Có Ai Tìm Thấy Nhớ Xin Mang Trả Dùm


Ở đây họ quan tâm đến sự thay đổi dữ liệu ở ô I2:I4 mới làm ảnh tận hưởng tới report chi tiết. Do đó bọn họ chỉ xét sự thay đổi ở vùng này.See more: đứng đầu 4 bài Cảm nhấn Về Bức Tranh ngày thu Trong bài Thu Điếu, Hay lựa 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 bao gồm sự thay đổi dữ liệu ở trong vùng I2:I4 xảy ra thì…

Khi thay đổi dữ liệu ở vùng I2:I4 thì chúng ta muốn cập nhật nội dung của report chi tiết. Do đó chúng ta sẽ gọi ra Macro vừa hoàn thành ở phần trên.

* ngã sung:

Do mỗi điều kiện vẫn cho kết quả nhiều / ít khác nhau, do đó để có thể xác định rõ tác dụng của Bảng chi tiết chỉ đúng với điều kiện được chọn, bọn họ cần làm sạch vùng Bảng cụ thể 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 sạch dữ liệu trong vùng H6:K100 (là vùng tác dụng dữ liệu của bảng bỏ ra tiết)

Kết luận

Những nội dung học được qua bài bác này là:

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

Trong công việc bọn họ sẽ gặp gỡ phải những câu hỏi này cực kỳ nhiều, được ứng dụng các trong thực tế.See more: đông đảo Mẹo nhỏ dại Để Có phiên bản Photo, Scan, In tệp tin Ảnh không biến thành Đen

Bài viết này sẽ khởi tạo tiền đề cho chúng ta làm quen với VBA, cách học VBA dễ dãi và làm quen dần với kỹ thuật VBA góp tự động hóa khi sử dụng Excel.