Mục lục
Để sắp xếp trong Excel bằng VBA , bạn cần áp dụng phương thức Range.Sort . Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sắp xếp cột trong Excel bằng phương thức Range.Sort của VBA .
Tải xuống Sổ làm việc
Bạn có thể tải xuống sổ làm việc Excel thực hành miễn phí từ đây.
Sắp xếp Cột bằng VBA.xlsm
Phương thức Range.Sort trong Excel VBA
Phương thức Range.Sort trong VBA sắp xếp một dải giá trị trong Excel. Ở đây Phạm vi là một biến đối tượng chỉ định phạm vi ô mà chúng tôi muốn sắp xếp theo thứ tự tăng dần hoặc giảm dần.
Dưới đây là các tham số mà bạn cần biết trong khi làm việc với phương pháp này.
Tham số | Bắt buộc/Tùy chọn | Loại dữ liệu | Mô tả |
---|---|---|---|
Khóa | Tùy chọn | Biến thể | Chỉ định phạm vi hoặc cột có giá trị sẽ được sắp xếp. |
Thứ tự | Tùy chọn | XlSortOrder | Chỉ định thứ tự sắp xếp sẽ được thực hiện.
|
Tiêu đề | Tùy chọn | XlYesNoGuess | Chỉ định xem hàng đầu tiên có chứa tiêu đề hay không .
|
4 Phương pháp Triển khai VBA để Sắp xếp Cột trong Excel
Trong phần này, bạn sẽ biết cách sắp xếp một cột có và không có tiêu đề , nhiều cột với và không có tiêu đề và cách sắp xếp chỉ bằng cách nhấp đúp vào tiêu đề trong cột trong Excel.
1. Nhúng VBA để sắp xếp một cột đơn lẻ không có tiêu đề trong Excel
Nếu bạn muốn sắp xếp một cột đơn lẻ trong trang tính Excel của mình bằng mã VBA thì hãy làm theo hướng dẫn các bước bên dưới.
Đây là cột mà chúng tôi sẽ sắp xếp bằng mã VBA .
Các bước:
- Nhấn Alt + F11 trên bàn phím hoặc chuyển đến tab Nhà phát triển -> Visual Basic để mở Trình soạn thảo Visual Basic .
- Trong cửa sổ mã bật lên, từ thanh menu , nhấp vào Chèn -> Mô-đun .
- Sao chép và dán mã sau vào cửa sổ mã.
3727
Mã của bạn hiện đã sẵn sàng để chạy.
Tại đây,
- Key1:=Range(“B5”) → Đã chỉ định B5 để cho mã biết cột nào cần sắp xếp.
- Order1:=xlAscending → Chỉ định thứ tự là xlAscending để sắp xếp cột theo thứ tự tăng dần. Nếu bạn muốn sắp xếp cột theo thứ tự giảm dần thì hãy viết xlDescending thay vào đó.
- Header:= xlNo →Vì cột của chúng tôi không có bất kỳ tiêu đề nào nên chúng tôi đã chỉ định cột đó bằng tùy chọn xlNo .
- Nhấn F5 trên bàn phím hoặc từ thanh menu, chọn Chạy -> Chạy Sub/UserForm . Bạn cũng có thể chỉ cần nhấp vào biểu tượng Play nhỏ trong thanh menu phụ để chạy macro.
Bạn sẽ thấy rằng cột hiện được sắp xếp theo thứ tự tăng dần .
Lưu ý rằng ở đây chúng tôi đã xác định phạm vi dữ liệu theo cách thủ công là Phạm vi(“B5:B15” ) .
Nếu bạn muốn thay đổi dữ liệu bằng cách thêm hoặc xóa các giá trị, bạn có thể triển khai mã sau đây để tự động cập nhật dựa trên các ô trong tập dữ liệu.
5722
Lưu ý rằng thay vào đó của việc xác định phạm vi theo cách thủ công bằng Phạm vi(“B5:B15”) , chúng tôi đã viết, Phạm vi( “B5”, Phạm vi(“B5”). End(xlDown)) .
Thao tác này sẽ sắp xếp cột dựa trên ô được điền liên tiếp cuối cùng trong đó. Nếu có các ô trống, dữ liệu sẽ chỉ được xem xét đến ô trống đầu tiên.
Đọc thêm: VBA để sắp xếp bảng trong Excel (4 phương pháp)
2. Chèn VBA Macro để sắp xếp một cột có tiêu đề
Trong phần trước, chúng ta có tập dữ liệu của một cột không có tiêu đề, nhưng bây giờ chúng ta có a cột có tiêu đề .
Lần này chúng ta sẽ tìm hiểu cách sắp xếp nó bằng macro VBA .
Các bước:
- Tương tự như trước, mở Trình soạn thảo Visual Basic từ tab Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, sao chép và dán mã sau đây.
3364
Mã của bạn hiện đã sẵn sàng để chạy.
Tại đây,
- Phím1:=Phạm vi(“ B5”) → Chỉ định B5 để cho mã biết cột nào cần sắp xếp.
- Order1:=xlDescending → Lần này chúng ta sẽ sắp xếp cột theo thứ tự thứ tự giảm dần nên đã chỉ định thứ tự là xlGiảm dần .
- Header:= xlYes → Vì lần này cột của chúng ta có tiêu đề nên chúng tôi đã chỉ định nó bằng xlYes option.
- Chạy mã này và bạn sẽ nhận được cột có tiêu đề được sắp xếp theo thứ tự giảm dần .
Đọc thêm: Cách sắp xếp ListBox bằng VBA trong Excel (Hướng dẫn đầy đủ)
Bài đọc tương tự:
- Cách sắp xếp địa chỉ IP trong Excel (6 phương pháp)
- [Đã giải quyết!] Sắp xếp trong Excel không hoạt động (2 giải pháp)
- Cách thêm nút sắp xếp trong Excel (7 phương pháp)
- Sắp xếp theo thứ tự e Sử dụng VBA trong Excel (6 ví dụ)
- Cách sắp xếp theo tên trong Excel (3 ví dụ)
3. Macro VBA để sắp xếp nhiều cột có hoặc không có Tiêu đề
Bạn cũng có thể sắp xếp nhiều cột trong tập dữ liệu của mình bằng mã VBA.
Các bước:
- Như đã trình bày trước đây, hãy mở Trình soạn thảo Visual Basic từ tab Nhà phát triển và Chèn một Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán đoạn mã sau.
2981
Mã của bạn hiện đã sẵn sàng để chạy.
Tại đây,
.SortFields.Add Key:=Phạm vi(“B4”), Thứ tự:=xlTăng dần
.SortFields.Add Key:=Phạm vi(“C4 ”), Thứ tự:=xlTăng dần
Bằng hai dòng này, chúng tôi đang xác định Ô B4 và C4 để sắp xếp hai cột được liên kết với chúng theo thứ tự tăng dần .
Vì chúng tôi có tiêu đề trong tập dữ liệu nên chúng tôi đã chỉ định Header = xlYes , nếu không chúng tôi đã viết Header = xlNo bên trong mã.
- Chạy mã này và bạn sẽ nhận được các cột có tiêu đề được sắp xếp theo thứ tự tăng dần .
4. Macro để sắp xếp dữ liệu bằng cách nhấp đúp vào tiêu đề trong Excel
Nếu bạn muốn sắp xếp dữ liệu một cách dễ dàng chỉ bằng cách nhấp đúp vào tiêu đề , bạn có thể thực hiện điều đó với Mã VBA.
Các bước:
- Nhấp chuột phải trên tab trang tính .
- Từ danh sách tùy chọn xuất hiện, nhấp vào Xem mã .
- Cửa sổ mã sẽ xuất hiện, sao chép đoạn mã sau và dán vào đó.
2617
- Lưu mã.
- Bây giờ, hãy quay lại bảng tính quan tâm và nếu bạn nhấp đúp vào tiêu đề bạn sẽ thấy các cột đang sắp xếp lại.
Đọc thêm: Cách sắp xếp và lọc dữ liệu trong Excel (Hướng dẫn đầy đủ)
Những điều cần nhớ
- Bạn có thể tạo một dải ô đã đặt tên và sử dụng nó thay thế khi bạn chuyển một dải tham chiếu ô bên trong Phương thức sắp xếp . Ví dụ: nếu bạn muốn sắp xếp phạm vi A1:A10 , thay vì chuyển phạm vi đó mỗi lần bên trong mã, bạn có thể tạo một phạm vi được đặt tên cho phạm vi đó, chẳng hạn như “ SortRange ” và sử dụng nó với phương thức Range.Sort như Range(“SortRange”) .
- Nếu bạn không chắc liệu tập dữ liệu của mình có tiêu đề hay không hoặc không, bạn có thể để hệ thống xác định bằng cách sử dụng tham số xlGuess .
Kết luận
Bài viết này hướng dẫn bạn cách sắp xếp cột trong Excel VBA . Tôi hy vọng bài viết này đã rất hữu ích cho bạn. Vui lòng hỏi nếu bạn có bất kỳ câu hỏi nào liên quan đến chủ đề này.