VBA usuwanie całego wiersza lub kolumny – Automate ExcelAutomate Excel

Ten samouczek zademonstruje różne sposoby usuwania wierszy i kolumn w Excelu za pomocą VBA.

Usuwanie całego wiersza lub kolumny

Aby usunąć cały wiersz w VBA, użyj tej linii kodu:

Rows(1).Delete

Zauważ, że używamy metody Delete do usunięcia wiersza.

Zamiast odwoływać się do obiektu Rows, możesz odwoływać się do wierszy na podstawie ich obiektu Range za pomocą EntireRow:

Range("a1").EntireRow.Delete

Podobnie, aby usunąć całą kolumnę, użyj tych linii kodu:

Columns(1).Delete
Range("a1").EntireColumn.Delete

Delete Multiple Rows or Columns

Używając tej samej logiki, możesz również usunąć wiele wierszy jednocześnie:

Rows("1:3").Delete

lub kolumn:

Columns("A:C").Delete

Zauważ, że odwołujemy się tutaj do konkretnych numerów / liter wierszy i kolumn otoczonych cudzysłowem.

Oczywiście, możesz również odwołać się do EntireRow zakresu:

Range("a1:a10").EntireRow.Delete

Uwaga: Poniższe przykłady demonstrują tylko usuwanie wierszy, jednak jak widać powyżej, składnia jest praktycznie identyczna do usuwania kolumn.

Usuwanie pustych/pustych wierszy

Ten przykład usunie wiersz, jeśli cały wiersz jest pusty:

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Wykorzystuje on funkcję arkusza Excela: COUNTA.

Delete Row if Cell is Blank

To spowoduje usunięcie wiersza, jeśli określona kolumna w tym wierszu jest pusta (w tym przypadku kolumna B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Delete Row Based on Cell Value

To zapętli zakres i usunie wiersze, jeśli określona wartość komórki w tym wierszu mówi „usuń”.

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

Więcej przykładów usuwania wierszy i kolumn

Usuń zduplikowane wiersze

Ten kod usunie wszystkie zduplikowane wiersze w zakresie:

Range("b2:c100").RemoveDuplicates Columns:=2

Zauważ, że ustawiliśmy Kolumny:=2. To mówi VBA, aby sprawdzić dwie pierwsze kolumny danych, gdy rozważamy, czy wiersze są duplikatami. Duplikat jest znajdowany tylko wtedy, gdy obie kolumny mają zduplikowane wartości.

Gdybyśmy ustawili to na 1, tylko pierwszy wiersz zostałby sprawdzony pod kątem zduplikowanych wartości.

Usuń wiersze tabeli

Ten kod usunie drugi wiersz w tabeli przez odwołanie się do ListObjects.

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

Delete Filtered Rows

Aby usunąć tylko wiersze, które są widoczne po filtrowaniu:

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Delete Rows in Range

Ten kod usunie wszystkie wiersze w zakresie:

Range("a1:a10").EntireRow.Delete

Delete Selected Rows

Ten kod usunie wszystkie wybrane wiersze:

Selection.EntireRow.Delete

Delete Last Row

To usunie ostatni używany wiersz w kolumnie B:

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

Zamieniając 2 na 1, można usunąć ostatni używany wiersz w kolumnie A, itd.:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Delete Columns by Number

Aby usunąć kolumnę według jej numeru, użyj kodu takiego jak ten:

Columns (2).Delete

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.