Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Các macro Excel có thể không toàn diện như những công cụ tự động hóa khác, nhưng không thể làm suy yếu 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ó.
MS 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 dashboard 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 nhiệm 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 một tập dữ liệu ví dụ để luyện các kỹ năng macro Excel. Khi đã hiểu rõ các macro này và cách mọi thứ hoạt động, bạn có thể thay đổi code để 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
Hãy sử dụng code đơn giản này để sắp xếp cột dữ liệu trong bảng tính Excel. Nếu đã tải xuống tập dữ liệu mẫu, bạn có thể thử sắp xếp cột E (Units Sold).
Mở một file Excel mới và lưu nó ở định dạng workbook Excel Macro-Enabled Workbook (.xlsm). File này sẽ lưu trữ macro để sắp xếp dữ liệu của bạn từ file khác.
Bạn sẽ kiểm soát (các) file của mình từ file macro, file này sẽ tương tác riêng với các workbook 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 đó:

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.
Có thể có những trường hợp trong đó điểm bắt đầu của bạn được xác định, nhưng điểm cuối lại là động. Trong trường hợp như vậy, bạn có thể làm cho code 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 đó:
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.
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

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 dashboard. 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 nó 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 code dưới đây là duyệt qua từng trang tính có sẵn trong workbook 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 đều là comment VBA. Chúng không được chạy trong giai đoạn thực thi. Tuy nhiên, mọi comment VBA mà bạn thêm đều là sự bổ sung có ý nghĩa cho code, vì bạn có thể xác định bản chất, chức năng và nhiều phần có liên quan khác trong các phần code.

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 tập dữ liệu đó) 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 code 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

Đoạn code trên sẽ sắp xếp các giá trị trong cột E, thêm một trang tính mới Results vào workbook hiện có và dán kết quả đã sắp xếp vào ô A1.
Excel VBA 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 daskboard mở rộng, dễ dàng sắp xếp dữ liệu với một vài cú nhấp chuột và thực hiện nhiều chức năng khác nhau một cách dễ dàng.
Chúc bạn thực hiện thành công!
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Karaoke Khóc (Midi)
TOP công cụ AI viết truyện ma, truyện kinh dị hay nhất
Hướng dẫn kết nối Claude với ElevenLabs xây dựng trợ lý giọng nói
Cách sử dụng tiện ích ChatGPT trên Chrome hiệu quả
Dùng tiện ích ChatGPT trong Chrome để so sánh bảng giá và gom tab
So sánh Gemini CLI và Claude Code: Nên sử dụng CLI hỗ trợ lập trình bằng AI nào?
Các biến động (Dynamic variable) trong ElevenAgents
Cách khắc phục sự cố click chuột trái trên Windows
Cách sử dụng Adobe trong Claude tạo thiết kế
Hướng dẫn kết nối Google Docs với Claude phân tích tài liệu
Hướng dẫn ngắt kết nối ứng dụng trên Canva AI
10 nền tảng Agentic AI tốt nhất cho doanh nghiệp năm 2026
Canvas trong Google Search: Viết, lập kế hoạch và lập trình ứng dụng
GitHub Copilot vs Claude Code: So sánh tính năng, giá và khả năng AI coding
Các workflow và giới hạn thực tế trong OpenAI Decisions API
6 trình duyệt có những tính năng AI tốt nhất
TOP những trợ lý email AI tốt nhất
TOP phần mềm quay màn hình có hỗ trợ AI
Cách cá nhân hóa hành vi agent trong ElevenAgents
Hướng dẫn tìm lịch sử trò chuyện với Canva AI
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10
Claude Code thực sự có giá bao nhiêu?
Hướng dẫn tạo flashcard trên Canva AI