VBA để sắp xếp cột trong Excel (4 phương pháp)

  • Chia Sẻ Cái Này
Hugh West

Để 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.
  • xlAscending = Để sắp xếp theo thứ tự tăng dần.
  • xlDescending = Để sắp xếp theo thứ tự giảm dần.
Tiêu đề Tùy chọn XlYesNoGuess Chỉ định xem hàng đầu tiên có chứa tiêu đề hay không .
  • xlNo = Khi cột không có bất kỳ tiêu đề nào; Giá trị mặc định.
  • xlCó = Khicác cột có tiêu đề.
  • xlGuess = Để Excel xác định tiêu đề.

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 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 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 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 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.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.