VBA Xóa hàng | Ví dụ để xóa hàng trong Excel bằng VBA

Excel VBA Xóa hàng

Thông thường trong trang tính excel, chúng ta có hai phương pháp khác nhau để xóa các hàng, một là phím tắt và một phương pháp khác bằng cách sử dụng phương pháp nhấp chuột phải và chèn nhưng trong VBA, chúng ta phải sử dụng lệnh xóa và câu lệnh trang tính để xóa bất kỳ hàng nào cùng nhau, mẹo để điều này có nghĩa là nếu chúng ta cần xóa một hàng, chúng ta cung cấp một tham chiếu hàng duy nhất nhưng đối với nhiều cột, chúng ta cung cấp nhiều tham chiếu hàng.

Sử dụng Phương pháp xóa hàng VBA, chúng tôi có thể xóa tất cả các hàng trống, chúng tôi có thể xóa hàng dựa trên giá trị ô, chúng tôi cũng có thể xóa toàn bộ hàng nếu bất kỳ ô nào trống.

Trong bài viết này, chúng ta sẽ thảo luận về phương pháp “VBA Delete Row”. Giữ bản thân bận rộn trong 15 đến 20 phút tiếp theo để tìm hiểu về khái niệm này.

Làm thế nào để xóa hàng?

Bạn có thể tải xuống Mẫu Excel Xóa Hàng VBA này tại đây - Mẫu Excel Xóa Hàng VBA

Ví dụ 1

Trong VBA, chúng ta cần đề cập đến hàng chúng ta đang xóa.

Mã:

 Sub DeleteRow_Example1 () Ô (1, 1) Kết thúc Sub 

Các ô (1, 1) có nghĩa là cột đầu tiên ở hàng đầu tiên tức là ô A1. Sau đó, chúng tôi sử dụng phương pháp "xóa".

Mã:

 Sub DeleteRow_Example1 () Các ô (1, 1). Xóa End Sub 

Bây giờ, điều này sẽ xóa ô đầu tiên. Tất cả các giá trị bên phải sẽ dịch chuyển một ô sang bên trái.

Ví dụ số 2

Nếu bạn muốn xóa toàn bộ hàng, chúng ta cần sử dụng thuộc tính “EntireRow” thì chúng ta cần sử dụng phương pháp “xóa” để xóa toàn bộ hàng của ô mà chúng ta đã chọn.

Mã:

Sub DeleteRow_Example2 () Các ô (1, 1) .EntireRow. Xóa End Sub

Ví dụ, tôi đã nhập một vài ký tự trong một trang tính excel như sau.

Bây giờ nếu tôi chạy mã này, nó sẽ xóa toàn bộ hàng không một ô nào.

Ví dụ # 3

Chúng ta có thể xóa hàng bằng một số cách. Trong ví dụ trên, chúng ta đã xóa hàng bằng cách sử dụng thuộc tính CELLS, bây giờ chúng ta sẽ xem cách xóa bằng cách sử dụng thuộc tính ROWS.

Bây giờ chúng ta cần đề cập đến hàng chúng ta cần xóa là gì, giả sử chúng ta cần xóa hàng thứ 5.

Bây giờ sử dụng thuộc tính thuộc tính “EntireRow”.

Sau khi chọn thuộc tính, những gì chúng ta cần làm tức là phương pháp. Chúng ta cần xóa hàng.

Mã:

 Sub DeleteRow_Example3 () Hàng (5) .EntireRow.Delete End Sub 

Vì vậy, mã này sẽ xóa hàng thứ 5.

Ví dụ # 4

Xóa nhiều hàng bằng cách sử dụng đối tượng phạm vi

Làm cách nào để xóa nhiều hàng?

Chúng ta có thể sử dụng đối tượng VBA RANGE để xóa nhiều hơn một hàng. Giả sử bạn có một số giá trị từ ô A1 đến A6.

Bây giờ tôi muốn xóa 5 hàng đầu tiên, vì vậy tôi có thể tham chiếu các hàng này bằng cách sử dụng đối tượng Phạm vi là “Phạm vi (“ A1: A5 ”)”

Mã:

 Sub DeleteRow_Example4 () Range ("A1: A5") End Sub 

Bây giờ tôi muốn sử dụng từ thuộc tính “EntireRow”.

Mã:

 Sub DeleteRow_Example4 () Range ("A1: A5") .EntireRow End Sub 

Trong toàn bộ hàng này, chúng ta cần thực hiện phương pháp xóa, vì vậy hãy sử dụng phương thức Xóa.

Mã:

 Sub DeleteRow_Example4 () Range ("A1: A5"). EntireRow .Xóa End Sub 

Bây giờ, điều này sẽ xóa các hàng đã chọn.

Ví dụ số 5

Xóa hàng dựa trên giá trị ô

Chúng ta cũng có thể sử dụng phương thức “EntireRow.Delete” này để xóa hàng dựa trên giá trị ô trong VBA. Ví dụ: tôi có các giá trị Có & Không từ ô A1 đến A10.

Bây giờ chúng ta cần xóa các hàng có giá trị "Không". Để thực hiện tác vụ này, chúng ta cần sử dụng hàm “IF” với các vòng lặp để xóa tất cả các hàng có giá trị là “Không”.

Đoạn mã dưới đây sẽ thực hiện công việc cho chúng tôi.

Mã:

 Sub DeleteRow_Example5 () Dim k As Integer For k = 10 To 1 Step -1 If Cells (k, 1) .Value = "No" Then Cells (k, 1) .EntireRow.Delete End If Next k End Sub 

Ví dụ # 6

Xóa tất cả các hàng ô trống

Có những tình huống mà chúng ta cần xóa toàn bộ hàng nếu bất kỳ ô nào trong phạm vi trống. Ví dụ, tôi có tập hợp dữ liệu dưới đây.

Tất cả các ô màu đều trống, vì vậy tôi cần xóa toàn bộ hàng. Chúng ta có thể thực hiện nhiệm vụ này với hai bộ mã. Dưới đây là mã.

Mã:

 Sub DeleteRow_Example6 () Range ("A1: F10"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub 

Thao tác này sẽ xác định các ô trống trong phạm vi A1 đến F10.IF bất kỳ ô trống nào được tìm thấy sẽ xóa toàn bộ hàng.

Vấn đề với mã này là nó sẽ chỉ xóa hàng của ô trống chỉ trong phạm vi A1 đến F10, nhưng nếu bất kỳ ô nào trống trong bất kỳ ô nào khác, nó sẽ không xóa. Vì vậy, hãy ghi nhớ điều này, tôi đã viết thêm một đoạn mã.

Mã:

 Sub DeleteRow_Example7 () Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox ("Vui lòng chọn phạm vi", "Xóa các hàng ô trống", Loại: = 8) Đặt DeletionRange = RangeToDelete RangeToDelete.SpecialCells (xlCellType). .Xóa End Sub 

Khi bạn chạy mã này trước hết nó sẽ yêu cầu bạn chọn phạm vi với một hộp nhập xuất hiện trước mặt bạn.

Sau khi chọn phạm vi bạn cần nhấp vào OK, nó sẽ xóa tất cả các hàng ô trống trong phạm vi đã chọn.


$config[zx-auto] not found$config[zx-overlay] not found