VBA Usuń wiersz

Excel VBA Usuń wiersz

Zwykle w arkuszu programu Excel mamy dwie różne metody usuwania wierszy, jedną będącą skrótem klawiaturowym, a drugą za pomocą metody kliknięcia prawym przyciskiem myszy i wstawiania, ale w VBA musimy użyć polecenia delete i instrukcji arkusza roboczego, aby usunąć wszystkie wiersze razem, sztuczka do oznacza to, że jeśli musimy usunąć pojedynczy wiersz, podajemy odwołanie do pojedynczego wiersza, ale dla wielu kolumn podajemy odniesienia do wielu wierszy.

Korzystając z metody VBA Delete Row Method, możemy usunąć wszystkie puste wiersze, możemy usunąć wiersz na podstawie wartości komórki, możemy również usunąć cały wiersz, jeśli którakolwiek z komórek jest pusta.

W tym artykule omówimy metodę „VBA Delete Row”. Zajmij się tym przez następne 15 do 20 minut, aby poznać koncepcję.

Jak usunąć wiersz?

Możesz pobrać ten szablon VBA Usuń wiersz Excel tutaj - VBA Usuń wiersz szablonu Excel

Przykład 1

W VBA musimy wspomnieć o usuwanym wierszu.

Kod:

 Sub DeleteRow_Example1 () Cells (1, 1) End Sub 

Komórki (1, 1) oznaczają pierwszą kolumnę w pierwszym wierszu, tj. Komórkę A1. Następnie stosujemy metodę „usuń”.

Kod:

 Sub DeleteRow_Example1 () Cells (1, 1) .Delete End Sub 

Teraz spowoduje to usunięcie pierwszej komórki. Wszystkie wartości po prawej stronie przesuną jedną komórkę w lewo.

Przykład nr 2

Jeśli chcesz usunąć cały wiersz, musimy skorzystać z właściwości „EntireRow”, a następnie użyć metody „delete”, aby usunąć cały wiersz z wybranej komórki.

Kod:

Sub DeleteRow_Example2 () Cells (1, 1) .EntireRow. Usuń koniec sub

Na przykład wprowadziłem kilka znaków w arkuszu programu Excel w następujący sposób.

Teraz, jeśli uruchomię ten kod, usunie on cały wiersz, a nie pojedynczą komórkę.

Przykład nr 3

Możemy usunąć wiersz na kilka sposobów. W powyższym przykładzie usunęliśmy wiersz przy użyciu właściwości CELLS, teraz zobaczymy, jak usunąć przy użyciu właściwości ROWS.

Teraz musimy wspomnieć, jaki wiersz musimy usunąć, powiedzmy, że musimy usunąć 5. wiersz.

Teraz użyj właściwości „EntireRow”.

Po wybraniu właściwości, co musimy zrobić, czyli metodę. Musimy usunąć wiersz.

Kod:

 Sub DeleteRow_Example3 () Rows (5) .EntireRow.Delete End Sub 

Tak więc ten kod usunie piąty wiersz.

Przykład 4

Usuń wiele wierszy za pomocą obiektu Range

Jak usunąć wiele wierszy?

Możemy użyć obiektu VBA RANGE, aby usunąć więcej niż jeden wiersz. Załóżmy, że masz jakieś wartości z komórek A1 do A6.

Teraz chcę usunąć pierwsze 5 wierszy, więc mogę odwołać się do tych wierszy, używając obiektu Range jako „Zakres („ A1: A5 ”)”

Kod:

 Sub DeleteRow_Example4 () Range („A1: A5”) End Sub 

Teraz chcę użyć słowa „EntireRow”.

Kod:

 Sub DeleteRow_Example4 () Range („A1: A5”) .EntireRow End Sub 

W całym tym wierszu musimy wykonać metodę usuwania, więc użyj metody Delete.

Kod:

 Sub DeleteRow_Example4 () Range („A1: A5”). EntireRow .Delete End Sub 

Teraz spowoduje to usunięcie wybranych wierszy.

Przykład nr 5

Usuń wiersze na podstawie wartości komórki

Możemy również użyć tej metody „EntireRow.Delete” , aby usunąć wiersz na podstawie wartości komórki w VBA. Na przykład mam wartości Tak i Nie z komórki A1 do A10.

Teraz musimy usunąć wiersze, które mają wartość „Nie”. Aby wykonać to zadanie, musimy użyć funkcji „IF” z pętlami, aby usunąć wszystkie wiersze, które mają wartość „Nie”.

Poniższy kod wykona zadanie za nas.

Kod:

 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 

Example #6

Delete All the Blank Cells Rows

There are situations where we need to delete the entire row if any of the cells in the range is blank. For example, I have below set of data.

All the colored cells are blank, so I need to delete the entire row. We can perform this task with two sets of code. Below is the code.

Code:

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

This will identify the blank cells in the range A1 to F10.IF any blank cells found will delete the entire row.

The problem with this code is it will only delete the blank cell’s row only in the range A1 to F10, but if any cells are blank in any other cells it will not delete. So keeping this in mind I have written one more code.

Code:

 Sub DeleteRow_Example7() Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox("Please select the range", "Blank Cells Rows Deletion", Type:=8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

When you run this code firstly it will ask you to select the range with an input box appearing in front of you.

After selecting the range you need to click on OK, it will delete all the blank cells rows in the selected range.