Đây là Seri bài viết hướng dẫn việc ứng dụng VBA trong quản lý nội dung trong bảng danh sách (danh sách hàng hóa, danh sách nhân viên…), gồm 5 phần:
Sau đây chúng ta cùng tìm hiểu nội dung của phần 4 qua bài tập sau:
Cho bảng dữ liệu về Danh sách nhân viên như hình bên dưới:
Xem nhanh
Bài tập này giúp chúng ta kết hợp với nội dung bài học trước (Sự kiện chọn 1 vị trí trong bảng) với logic về việc xóa dữ liệu, cập nhật nội dung bảng dữ liệu. Tất cả các nội dung này chúng ta đã biết từ trong các bài học trước, ở đây chỉ là việc chúng ta sắp xếp thứ tự các công việc diễn ra theo trình tự phù hợp với mong muốn.
=> Xác định rõ logic của việc chọn và xóa nội dung được chọn.
Xác định dòng được chọn: Tương tự bài học Phần 3, lệnh xác định dòng được chọn là:
ActiveCell.Row
Dòng được chọn phải nằm trong bảng và phải có dữ liệu: Tính từ dòng bắt đầu của bảng tới dòng cuối có chứa dữ liệu trong bảng
Dòng được chọn >= Dòng bắt đầu trong bảng (Dòng 8)
Dòng được chọn <= Dòng cuối có chứa dữ liệu trong bảng (Câu lệnh tìm dòng cuối của bảng – Xem lại bài Phần 2)
If ActiveCell.Row <= 8 And ActiveCell.Row >= DongCuoi Then
…
End If
Lưu ý là Nếu Dòng Cuối của bảng <8 (Bảng không có dữ liệu) thì chúng ta phải loại trường hợp này đi => Cần lồng thêm 1 hàm IF
IF DongCuoi <8 Then
Exit Sub
ElseIf ActiveCell.Row <= 8 And ActiveCell.Row >= DongCuoi Then
…
End If
Xóa nội dung được chọn: Làm trống nội dung ở dòng được chọn, từ cột A tới cột D trong Sheet1
Sheet1.Range(“A” & ActiveCell.Row & “:” & “D” & ActiveCell.Row).ClearContents
Sắp xếp lại nội dung trong bảng để loại bỏ dòng trống xen kẽ: Record macro để tìm hiểu lệnh Sắp xếp dữ liệu trong bảng danh sách => Việc sắp xếp này sẽ loại bỏ dòng trống xen kẽ với dữ liệu trong bảng.
ActiveWorkbook.Worksheets(“Sheet1”).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(“Sheet1”).Sort.SortFields.Add Key:=Range(“A8:A24”), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(“Sheet1”).Sort
.SetRange Range(“A7:D24”)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Như vậy chúng ta có Sub Xóa dữ liệu trong VBA như sau:
Bây giờ chúng ta chọn bất kỳ 1 dòng trong bảng dữ liệu và bấm vào nút lệnh Xóa để xem kết quả đã đúng như ý muốn chưa nhé.
Kết quả hoàn thành sẽ như sau (ví dụ với trường hợp xóa NV003)
Khi ứng dụng VBA vào công việc, chúng ta cần phải xác định rõ nội dung trình tự công việc bằng lời trước, sau đó mới từng bước thực hiện công việc thông qua VBA
Ở bài học này có thêm việc Sắp xếp nội dung sau mỗi lần xóa => Có thể kết hợp với việc Sắp xếp nội dung sau mỗi lần Lưu nội dung => Như vậy việc Thêm mới nội dung cũng sẽ được tự động sắp xếp lại bảng dữ liệu.
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: