5 macro Excel có thể không toàn diện như các công cụ tự động hóa khác, nhưng điều đó không làm suy giảm tính hợp lệ và hiệu quả của Excel VBA. Nếu bạn làm việc trong Excel và các công cụ Microsoft Office khác như Word và Access, bạn sẽ hài lòng với VBA và các khả năng của nó.

5 macro Excel

5 macro Excel là một công cụ mạnh mẽ cung cấp nhiều tùy chọn cho người dùng. Từ lưu trữ dữ liệu đến tạo trang tổng quan tự động, bạn có thể thực hiện tất cả trong Excel và các bảng tính của nó.

Nếu bạn muốn sử dụng VBA để tự động hóa tác vụ sắp xếp trong Excel, hãy thử các macro dễ áp dụng hiệu quả này.

Lưu ý:

Đối với người mới bắt đầu, bạn có thể tải xuống tập dữ liệu mẫu để thực hành các kỹ năng macro Excel của mình. Khi bạn hiểu các macro này và cách mọi thứ hoạt động, bạn có thể thay đổi mã để phù hợp với bảng tính của riêng mình.

Tải tập dữ liệu ví dụ sử dụng trong bài viết này tại đây.

https://go.skimresources.com/?id=85009X1675668&isjs=1&jv=15.2.1-stackpath&sref=https%3A%2F%2Fwww.makeuseof.com%2Fexcel-macros-for-sorting-data%2F&url=http%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkID%3D521962&xs=1&xtz=-420&xuuid=dbea3bd8a7fea598ef62218623c00da5&xjsf=other_click__auxclick%20%5B2%5D

1. Sắp xếp một cột bằng Excel Macro

Sử dụng mã đơn giản này để sắp xếp các cột dữ liệu trong bảng tính Excel. Nếu bạn đã tải xuống tập dữ liệu mẫu, bạn có thể thử sắp xếp cột E (Đơn vị đã bán).

Mở tệp Excel mới và lưu nó ở định dạng sổ làm việc Excel Macro-Enabled (.xlsm). Tệp này sẽ lưu trữ các macro để sắp xếp dữ liệu của bạn từ các tệp khác.

Bạn sẽ kiểm soát (các) tệp của mình từ một tệp macro, tệp này sẽ tương tác riêng với các sổ làm việc của bạn.

Nhập code sau:

Sub sortwithheaders()
Workbooks("Financial Sample.xlsx").Sheets(1).Activate
Range("A1:P701").sort Key1:=Range("e1"), Order1:=xlAscending, Header:=xlYes
End Sub

Trong đó:

  • Key1: Xác định (các) cột mà bạn muốn sắp xếp
  • Order1: Phương thức đặt hàng (tăng dần / giảm dần)
  • Header: Nếu nội dung của bạn có header, tùy chọn này sẽ vẫn là xlYeHeaders. Nếu không, hãy chọn xlNo.
Lưu file macro trong Excel
Lưu file macro trong Excel

Phạm vi sẽ bao gồm địa chỉ ô bắt đầu và ô kết thúc để mọi thứ được ghi lại cho mục đích sắp xếp. Kết quả là toàn bộ tập dữ liệu của bạn sẽ được sắp xếp dựa trên dữ liệu trong cột E.

2. Sắp xếp dữ liệu động trong một cột

Có thể có trường hợp điểm bắt đầu của bạn được xác định, nhưng điểm cuối là động. Trong trường hợp như vậy, bạn có thể làm cho mã của mình động để nó tự động nhận điểm cuối trong phạm vi.

Để đáp ứng sự thay đổi trong dữ liệu, hãy sử dụng code bên dưới:

Sub sortwithheaders()
Workbooks("Financial Sample.xlsx").Sheets(1).Activate
Range("A1", Range("A1").End(xlDown)).sort Key1:=Range("e2"), Order1:=xlAscending, Header:=xlYes
End Sub

Trong đó:

  • End (xlDown): Hàm này sẽ tự động chọn ô được điền cuối cùng một cách tự động

Lưu ý: Nếu công thức gặp một ô trống trong một cột, công thức sẽ coi ô trước đó là phần cuối của phạm vi.

3. Sắp xếp nhiều cột cùng nhau

Có thể có những tình huống khi bạn muốn sắp xếp dữ liệu ở nhiều cột trong một lần. Để làm như vậy, bạn có thể sử dụng code sau:

Sub SortMultipleColumns()
With Worksheets("Sheet1")
 With .Cells(1, "A").CurrentRegion
 .Cells.sort Key1:=.Range("B1"), Order1:=xlAscending, _
 Key2:=.Range("E1"), Order2:=xlAscending, _
 Orientation:=xlTopToBottom, Header:=xlYes
 End With
 End With
End Sub
Sắp xếp nhiều cột cùng nhau
Sắp xếp nhiều cột cùng nhau

4. Sắp xếp các cột trên nhiều trang tính

Khi xử lý nhiều trang tính, bạn có thể muốn đưa dữ liệu của mình vào một trang tổng quan. Một trong những khía cạnh quan trọng nhất của việc chuẩn bị dữ liệu là sắp xếp dữ liệu theo một định dạng nhất định để trình bày cho các bên liên quan hoặc khách hàng.

Một tùy chọn là xoay vòng qua từng trang tính theo cách thủ công, sắp xếp các cột cần thiết, sau đó tiến hành bước tiếp theo. Nhưng tại sao không để VBA làm điều đó cho bạn?

Mục đích của đoạn mã dưới đây là duyệt qua từng trang tính có sẵn trong sổ làm việc và dựa trên các cột được chỉ định, sắp xếp dữ liệu có sẵn.

Đây là cách bạn có thể sắp xếp các cột trên nhiều trang tính:

Sub SortWS()
Dim ws As Worksheet
'Activate the intended worksheet
Workbooks("Financial Sample.xlsx").Activate
'Cycle through each individual worksheet automatically using for loop
For Each ws In ActiveWorkbook.Sheets
'activate each individual worksheet
ws.Activate
'Define the range and then sort the column basis your requirements. In this case, only one column in being sorted.
Range("A1", Range("p1").End(xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Command used to cycle to the next worksheet, once the previous worksheet has been sorted
Next ws
End Sub

Tất cả thông tin bắt đầu bằng dấu ngoặc kép là một bình luận VBA. Chúng không được chạy trong giai đoạn thực thi. Tuy nhiên, bất kỳ nhận xét VBA nào bạn thêm vào đều là một bổ sung có ý nghĩa cho mã, vì bạn có thể xác định bản chất, chức năng và nhiều phần liên quan khác của mã.

Code để sắp xếp các cột trên nhiều trang tính trong Excel VBA
Code để sắp xếp các cột trên nhiều trang tính trong Excel VBA

5. Sao chép dữ liệu được sắp xếp từ trang tính này sang trang tính khác

Hãy tưởng tượng một tình huống mà bạn muốn sắp xếp dữ liệu và sao chép toàn bộ tập dữ liệu (hoặc các phần của nó) vào một trang tính mới được thêm vào. Trong những trường hợp như vậy, bạn có thể sử dụng mã dưới đây để thực hiện tác vụ này:

Sub SortWS()
Dim ws As Worksheet
'Activate the intended worksheet
Workbooks("Financial Sample.xlsx").Activate
'Cycle through each individual worksheet automatically using for loop
For Each ws In ActiveWorkbook.Sheets
'activate each individual worksheet
ws.Activate
'Define the range and then sort the column basis your requirements. 
'In this case, only one column in being sorted.
Range("A1", Range("p1").End(xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Command used to cycle to the next worksheet, once the previous worksheet has been sorted
Next ws
'Create a new worksheet within the workbook to store the new data
ActiveWorkbook.Sheets.Add.Name = "Results"
'Copy paste the sorted data into the newly added sheet
Sheets("Sheet1").Range("A1:p701").Copy Destination:=Sheets("Results").Range("a1")
End Sub
Sao chép dữ liệu được sắp xếp từ trang tính này sang trang tính khác
Sao chép dữ liệu được sắp xếp từ trang tính này sang trang tính khác

Đoạn mã trên sẽ sắp xếp các giá trị trong cột E, thêm một trang tính mới Kết quả vào sổ làm việc hiện có và dán các kết quả đã sắp xếp vào ô A1.

Kết luận

5 macro Excel là một ngôn ngữ tiện lợi có thể giúp bạn tiết kiệm rất nhiều thời gian và công sức. Bằng cách sử dụng macro VBA, bạn có thể tạo các bảng daskboard rộng rãi, dễ dàng tổ chức dữ liệu với một vài cú nhấp chuột và thực hiện các chức năng khác nhau một cách dễ dàng.

XEM THÊM TẠI: https://meovatcongnghe.com/

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *