Hướng dẫn cách sắp xếp thứ tự dữ liệu tự động trong Excel bằng VBA

Ở bài học trước, chúng ta đã tìm hiểu về việc sử dụng chức năng Sort để sắp xếp thứ tự dữ liệu trong Excel.

Xem lại bài học tại: Sắp xếp dữ liệu theo nhiều điều kiện trong Excel

Trong bài này, hocexcel.online sẽ giúp các bạn ứng dụng tính năng này vào VBA để giúp chúng ta có thể tự động sắp xếp lại dữ liệu mỗi khi nhập thêm dữ liệu mới vào bảng. Chúng ta tìm hiểu bài học này thông qua bài tập ví dụ sau:

Đề bài

Cho bảng dữ liệu sau:

Yêu cầu: Nhập dữ liệu vào vùng I2:M2, sau đó ấn vào nút mũi tên để lưu dữ liệu vào bảng dữ liệu A1:F28. Khi lưu dữ liệu vào bảng thì đồng thời:

  • Xóa nội dung của dữ liệu đã nhập ở I2:M2 (làm mới dữ liệu)
  • Sắp xếp tự động các nội dung trong bảng dữ liệu

Cách làm

Bước 1: Record Macro thao tác lọc dữ liệu

Tại tab Developer, chọn chức năng Record Macro

Thực hiện thao tác lọc dữ liệu trong bảng A1:F28

Sau khi thực hiện thao tác trên, chúng ta có được dòng lệnh Macro như sau:

 

Bước 2: Nhập dữ liệu vào vùng Nhập mới

Chúng ta có thể nhập dữ liệu bất kỳ ở vùng này

Ví dụ như sau:

Bước 3: Tạo lệnh Lưu dữ liệu

Căn cứ theo yêu cầu của đề bài, chúng ta có thể xác định được trình tự lưu dữ liệu bao gồm:

  1. Đưa dữ liệu từ vùng nhập mới vào Bảng dữ liệu
  2. Xóa dữ liệu ở vùng nhập mới
  3. Sắp xếp dữ liệu trong Bảng dữ liệu

Chúng ta mở cửa sổ VBA và tạo Sub Lưu dữ liệu như sau:

 

Sử dụng dấu nháy đơn để giúp chúng ta có thể ghi chú nội dung, giúp khi viết và đọc Code trong VBA sẽ dễ hơn

Code Lưu dữ liệu vào Bảng:

  • Tìm dòng cuối trong bảng (các bạn có thể tìm hiểu thêm kiến thức về VBA trong khóa học VBA101 của thầy Thanh)

Dim DongCuoi As Long
DongCuoi = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row + 1

  • Lưu dữ liệu vào dòng cuối

Sheet1.Range(“A” & DongCuoi & “:” & “F” & DongCuoi).Value = Sheet1.Range(“I2:N2”).Value

Code xóa dữ liệu ở vùng nhập mới (lưu ý là ô M2 có chứa công thức = Đơn giá * Số lượng, vì vậy chúng ta không cần xóa công thức này)

Sheet1.Range(“I2:M2”).ClearContents

Code sắp xếp dữ liệu: chúng ta gọi Macro sắp xếp đã thu được ở trên

Call Macro3

Lưu ý: nếu chúng ta đổi tên Macro3 thì phải đổi ở Sub Macro3 => Khi đó dòng lệnh Call sẽ gọi tên đã được đổi

* Kết quả dòng lệnh như sau:

Bước 4: Gán lệnh Lưu dữ liệu vào nút Mũi tên

  • Vẽ nút mũi tên bằng cách chọn tab Insert => Shapes => Chọn nút mũi tên và vẽ ra

  • Gán macro vào Shapes: click chuột phải vào nút mũi tên, chọn Assign Macro, sau đó chọn tới Macro Lưu dữ liệu

  • Sau khi đã gán macro vào nút mũi tên, chúng ta thực hiện việc lưu dữ liệu. Và đây là kết quả của chúng ta:

Dòng tô màu vàng chính là dòng dữ liệu mà chúng ta vừa thêm mới vào bảng.

Các bạn có thể thấy là dòng này sau khi thêm đã được tự động sắp xếp theo thứ tự vào trong bảng, chứ không phải xuất hiện ở cuối bảng như thông thường.

Như vậy là chúng ta đã hoàn thành được yêu cầu của đề bài rồi. Nội dung này được ứng dụng rất nhiều trong việc quản lý dữ liệu, nhất là những dữ liệu lớn, cần sắp xếp theo nhiều điều kiện: thời gian, phân nhóm …

VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook … giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp …

Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này. Chi tiết xem tại:


Tác giả: duongquan211287

· · ·

Khóa học mới xuất bản