VBA Usuń wiersze - Przykłady usuwania wierszy Excela za pomocą VBA

Spisie treści

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 chodzi o to, że jeśli musimy usunąć pojedynczy wiersz, podajemy odniesienie 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 i 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?

Przykład 1

W VBA musimy wspomnieć o wierszu, który usuwamy.

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 używamy metody „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 użyć właściwości „EntireRow”, a następnie musimy użyć metody „delete”, aby usunąć cały wiersz z wybranej komórki.

Kod:

Sub DeleteRow_Example2 () Cells (1, 1) .EntireRow.Delete End 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ąć za pomocą właściwości ROWS.

Teraz musimy wspomnieć, jaki wiersz musimy usunąć. Powiedzmy, że musimy usunąć piąty wiersz.

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

Po wybraniu właściwości, co musimy zrobić, czyli metoda. 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

Delete Rows Based On Cell Value

We can also use this “EntireRow.Delete” method to delete the row based on cell value in VBA. For example, I have Yes & No values from cell A1 to A10.

Now we need to delete the rows which have the value “No.” To perform this task, we need to use the function “IF” with loops to delete all the rows which have the value of “No.”

The below code will do the job for us.

Code:

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 are 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 are found, they 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 ("Proszę wybrać zakres", "Usunięcie pustych wierszy komórek", Typ: = 8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCells (xlowCellType). .Delete End Sub

Po uruchomieniu tego kodu najpierw poprosi Cię o wybranie zakresu z polem wejściowym pojawiającym się przed Tobą.

Po wybraniu zakresu należy kliknąć OK. Spowoduje to usunięcie wszystkich pustych wierszy komórek w wybranym zakresie.

Interesujące artykuły...