Mục lục
Biết cách sắp xếp phạm vi bằng VBA trong Excel giúp tiết kiệm thời gian và công sức trong các tính toán hàng ngày của chúng tôi. Mặc dù Excel cung cấp một cơ sở sắp xếp theo mặc định. Bằng cách sử dụng phương thức Range.Sort , chúng tôi có quyền truy cập vào một số tham số để sắp xếp tập dữ liệu với nhiều tùy chọn hơn bình thường.
Tải xuống Sách bài tập thực hành
Tải xuống sách bài tập thực hành này để thực hiện khi bạn đang đọc bài viết này.
Sắp xếp Phạm vi trong Excel.xlsm
Giới thiệu về Câu lệnh Range.Sort trong Excel VBA
Mục tiêu: Để sắp xếp một phạm vi dữ liệu ô.
Cú pháp:
biểu thức .Sắp xếp ( Key1 , Order1 , Key2 , Type , Order2 , Key3 , Order3 , Header , OrderCustom , MatchCase , Orientation , SortMethod , DataOption1 , DataOption2 , DataOption3 )
Ở đây, biểu thức đại diện cho một đối tượng Phạm vi , tức là một ô, một hàng, một cột hoặc một vùng chọn các ô.
Đối số:
Chúng tôi cần cung cấp ba tham số chính cho phương thức Range.Sort . Chúng là-
Khóa – Phạm vi ô từ một hoặc nhiều cột chúng ta cần sắp xếp.
Thứ tự – Chỉ định thứ tự sắp xếp hoặc tăng dần hoặc giảm dần.
Tiêu đề – Khai báo xem các cột được sắp xếp có tiêu đề hay không.
6 Ví dụ về Phạm vi Sắp xếp trong Excel VBA
Trongbài viết này, với tư cách là một bộ dữ liệu, chúng tôi sẽ sử dụng danh sách tên của mọi người cùng với ngày sinh và tuổi của họ. Chúng tôi sẽ áp dụng các phương pháp khác nhau để sắp xếp tập dữ liệu. Hãy cùng xem qua bài viết và thực hành để thành thạo các phương pháp này.
1. Sắp xếp phạm vi một cột bằng Excel VBA
Trong ví dụ này, chúng tôi sẽ sắp xếp những người từ lớn tuổi nhất đến trẻ nhất . Hãy làm theo các bước để sử dụng phương pháp Phạm vi . Sắp xếp sẽ sắp xếp cột Tuổi tác trong thứ tự giảm dần .
Các bước:
- Chuyển đến Tab Nhà phát triển trong Dải băng Excel đến nhấp vào trên Visual Basic
- Sau đó chọn Tùy chọn mô-đun từ Chèn tab để mở mô-đun mới .
Bây giờ, chúng ta sẽ đặt mã của mình vào sắp xếp phạm vi cột Tuổi .
1.1 Cột có Tiêu đề
Đặt mã sau vào trình chỉnh sửa mã trực quan.
6416
Nhấn F5 hoặc nhấp vào nút Chạy để thực thi mã.
Giải thích:
Trong đoạn mã trên, chúng ta đặt-
Biểu thức (đối tượng Phạm vi)=Range(“D4:D11”); cột tuổi có tiêu đề trong ô D4 và giá trị trong D5:D11.
Phím = Phạm vi(“D4”); phím để sắp xếp.
Thứ tự= xlGiảm dần; vì chúng tôi muốn sắp xếp các giá trị từ lớn nhất đến thấp nhất chúng tôi đặt thứ tự sắp xếp là giảm dần.
Header =xlYes; Trong ảnh chụp màn hình sau đây, chúng ta có thể thấy rằng tập dữ liệu có tiêu đề cho mỗi cột.
1.2 Cột không có tiêu đề
Đặt như sau mã trong trình chỉnh sửa mã trực quan.
9040
Nhấn F5 hoặc nhấp vào nút Chạy để thực thi mã.
Giải thích:
Trong đoạn mã trên, chúng tôi đặt-
Biểu thức (Đối tượng phạm vi)=Phạm vi(“D4 :D10”); cột tuổi không có tiêu đề có giá trị trong D4:D10.
Khóa = Phạm vi(“D4”); phím để sắp xếp.
Thứ tự= xlGiảm dần; vì chúng tôi muốn sắp xếp các giá trị từ lớn nhất đến thấp nhất chúng tôi đặt thứ tự sắp xếp là giảm dần.
Header =xlNo; Trong ảnh chụp màn hình sau đây, chúng ta có thể thấy rằng tập dữ liệu không có tiêu đề .
Nội dung liên quan: Cách sắp xếp cột trong Excel mà không trộn dữ liệu (3 cách)
2. Sử dụng mã VBA để sắp xếp phạm vi nhiều cột trong Excel
Để hiển thị sắp xếp trong nhiều cột , chúng ta cần sửa đổi tập dữ liệu một chút. Chúng tôi đã chèn một số mới hàng . Trong tập dữ liệu đã sửa đổi, các hàng 7, 8, và 9 có các giá trị giống nhau cho ngày sinh và tuổi nhưng ba tên khác nhau . Những tên này không phải theo bất kỳ thứ tự cụ thể nào tăng dần hoặc giảm dần.
Trong ví dụ này, chúng tôi sẽ sắp xếp tên theo thứ tự tăng dần . Hãy chạy đoạn mã sau trong trình chỉnh sửa trực quan cơ bản:
3636
Giải thích:
Ở trên ảnh chụp màn hình, chúng ta có thể thấy rằng độ tuổi trong cột D được sắp xếp theo thứ tự giảm dần . Chúng tôi đã thêm hai tham số khác trong mã trước của mình.
Key2: =Range(“B4”) , khóa để sắp xếp tên.
Thứ tự 2: =xlTăng dần , thứ tự cho tên rút gọn .
Kết quả là chúng ta thấy tên trong các hàng 7, 8 và 9 hiện được sắp xếp theo bảng chữ cái theo thứ tự tăng dần .
Trong ảnh chụp màn hình sau, chúng tôi đã thay đổi giá trị của tham số Order2 thành sắp xếp các tên theo thứ tự giảm dần .
Đọc thêm: Cách sắp xếp nhiều cột trong Excel (5 phương pháp nhanh)
3. Nhấp đúp vào Tiêu đề để Sắp xếp Phạm vi Cột trong Excel VBA
Tính năng sắp xếp mặc định của Excel không cho phép sắp xếp các giá trị của một cột theo nhấp đúp vào tiêu đề cột . Nhưng sử dụng mã VBA, chúng tôi có thể làm cho nó xảy ra. Hãy minh họa chức năng này bằng cách áp dụng đoạn mã sau.
8815
Trong đoạn mã này, chúng tôi đã sử dụng sự kiện BeforeDoubleClick để vô hiệu hóa thao tác nhấp đúp – nhấp chuột<2 thông thường> để bắt đầu chế độ chỉnh sửa của ô. Với sự kiện nàyđang chạy, nếu chúng ta nhân đôi – nhấp vào trên bất kỳ tiêu đề cột nào thì nó sẽ sắp xếp dữ liệu cột theo thứ tự tăng dần .
Đọc thêm: VBA để sắp xếp cột trong Excel (4 phương pháp)
Bài đọc tương tự:
- Cách Thêm Nút Sắp xếp trong Excel (7 Phương pháp)
- Sắp xếp Danh sách Duy nhất trong Excel (10 Phương pháp Hữu ích)
- Cách để sử dụng chức năng sắp xếp trong Excel VBA (8 ví dụ phù hợp)
- Sắp xếp các mục trùng lặp trong Excel (Cột và hàng)
- Sắp xếp ngẫu nhiên trong Excel ( Công thức + VBA)
4. Sắp xếp phạm vi cột dựa trên màu nền bằng Excel VBA
Chúng tôi có thể sắp xếp một phạm vi ô trong một cột dựa trên trên màu nền của chúng . Để làm như vậy, chúng ta cần thêm a tham số có tên SortOn có giá trị xlSortOnCellColor . Để minh họa cách sắp xếp, trước tiên, chúng tôi đặt màu nền khác nhau cho các hàng của tập dữ liệu .
Sau đó, trong phần trực quan cơ bản trình chỉnh sửa mã sao chép đoạn mã sau và nhấn F5 để chạy mã.
3450
Trong ảnh chụp màn hình sau, chúng ta có thể thấy tập dữ liệu được sắp xếp dựa trên trên màu nền của chúng.
Giải thích:
- Trong ví dụ này, chúng tôi đặt tên cho bảng tính “ nền ”. Vì vậy, trong mã, chúng tôi đặt “ nền ” làm tên trang tính đang hoạt động.
- Chúng tôi đặt B4 làm khóa và B4:D10 là phạm vi . Mã sẽ sắp xếp dữ liệu dựa trên khóa.
- Vì chúng tôi không chỉ định tham số tiêu đề nên mã chạy cho không có tiêu đề mặc định.
- Chúng tôi đặt tham số thứ tự là tăng dần, để tham số này sắp xếp dữ liệu từ giá trị thấp hơn đến giá trị cao hơn .
Đọc thêm: Cách sắp xếp theo màu trong Excel (4 tiêu chí)
5. Áp dụng mã VBA để sắp xếp phạm vi cột dựa trên màu phông chữ
Bằng cách áp dụng mã VBA, chúng tôi có thể sắp xếp tập dữ liệu của mình dựa trên màu phông chữ của chúng. Trước tiên, chúng ta cần tô màu các hàng khác nhau để minh họa ví dụ.
Áp dụng mã bên dưới để sắp xếp tập dữ liệu dựa trên màu phông chữ.
8148
Giải thích:
- Trong này ví dụ: chúng tôi đặt tên cho trang tính “ màu phông chữ ”. Vì vậy, trong mã, chúng tôi đặt “ màu phông chữ ” làm tên trang tính đang hoạt động.
- Chúng tôi đặt B4 làm khóa và B4:D11 làm phạm vi . Mã này sẽ sắp xếp dữ liệu dựa trên khóa.
- Trong ví dụ này, chúng tôi cũng đã chỉ định tham số tiêu đề là xlYes .
- Ở đây, chúng tôi đặt thứ tự tham số là tăng dần, vì vậy tham số này sắp xếp dữ liệu từ giá trị thấp hơn đến giá trị cao hơn .
- Giá trị của tham số SortOn là
- Tham số định hướng giữ giá trị xlTopToBottom vì giá trị này là bắt buộc.
- Màu để sắp xếp theo thuật ngữ RGB có một giá trịtừ 0 đến 255 .
Đọc thêm: Cách sắp xếp hai cột trong Excel sao cho phù hợp (Cả hai đều chính xác và Trận đấu một phần)
6. Thay đổi hướng thành phạm vi sắp xếp bằng Excel VBA
Sử dụng tham số hướng , chúng tôi có thể thay đổi cách chúng tôi muốn sắp xếp dữ liệu. Trong ví dụ này, chúng tôi đã chuyển đổi tập dữ liệu của mình thành sắp xếp nó theo chiều ngang .
Hãy đặt mã sau trong trình chỉnh sửa trực quan cơ bản và nhấn F5 để chạy.
4458
Ở đây chúng tôi đã sắp xếp dữ liệu dựa trên hàng độ tuổi theo thứ tự tăng dần từ trái đến phải . Trong mã, chúng tôi đặt tham số orientation là xlSortRows .
Nội dung có liên quan: Cách tự động sắp xếp nhiều cột trong Excel (3 cách)
Những điều cần nhớ
- Tham số SortOn mà chúng tôi đã sử dụng để sắp xếp phạm vi cột dựa trên màu nền và màu phông chữ chỉ có thể được sử dụng bởi đối tượng trang tính . Chúng ta không thể sử dụng nó với đối tượng dải ô .
- Sự kiện B BeforeDoubleClick chỉ sắp xếp dữ liệu theo tăng dần.
Kết luận
Bây giờ, chúng ta đã biết cách sắp xếp phạm vi bằng VBA trong Excel. Hy vọng, nó sẽ khuyến khích bạn sử dụng điều này một cách tự tin hơn. Mọi thắc mắc, góp ý đừng quên comment vào ô bình luận bên dưới nhé.