Ten samouczek zademonstruje różne sposoby usuwania wierszy i kolumn w programie Excel za pomocą VBA.
Usuń cały wiersz lub kolumnę
Aby usunąć cały wiersz w VBA, użyj tego wiersza kodu:
1 | Wiersze(1).Usuń |
Zauważ, że używamy Kasować metoda usunięcia wiersza.
Zamiast odwoływać się do Obiekt wierszy, możesz odwoływać się do wierszy na podstawie ich Obiekt zakresu z Cały rząd:
1 | Zakres("a1").EntireRow.Delete |
Podobnie, aby usunąć całą kolumnę, użyj tych wierszy kodu:
1 | Kolumny(1).Usuń |
1 | Zakres("a1").EntireColumn.Delete |
Usuń wiele wierszy lub kolumn
Korzystając z tej samej logiki, możesz również usunąć wiele wierszy jednocześnie:
1 | Wiersze("1:3").Usuń |
lub kolumny:
1 | Kolumny("A:C").Usuń |
Zauważ, że tutaj odwołujemy się do określonych numerów / liter wierszy i kolumn otoczonych cytatami.
Oczywiście możesz również odwoływać się do całego wiersza zakresu:
1 | Zakres("a1:a10").EntireRow.Delete |
Uwaga: poniższe przykłady pokazują tylko usuwanie wierszy, jednak jak widać powyżej, składnia jest praktycznie identyczna z usuwaniem kolumn.
Usuń puste/puste wiersze
Ten przykład usunie wiersz, jeśli cały wiersz jest pusty:
1234567891011 | Sub UsuńRows_EntireRowBlank()Przyciemnij komórkę jako zakresDla każdej komórki w zakresie("b2:b20")Jeśli Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Wtedycell.EntireRow.DeleteZakończ, jeśliNastępna komórkaNapis końcowy |
Wykorzystuje funkcję arkusza Excel: ILE.NIEPUSTYCH.
Usuń wiersz, jeśli komórka jest pusta
Spowoduje to usunięcie wiersza, jeśli określona kolumna w tym wierszu jest pusta (w tym przypadku kolumna B):
1 | Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete |
Usuń wiersz na podstawie wartości komórki
Spowoduje to przejście przez zakres i usunięcie wierszy, jeśli określona wartość komórki w tym wierszu mówi „usuń”.
1234567891011 | Sub UsuńRowswithSpecificValue()Przyciemnij komórkę jako zakresDla każdej komórki w zakresie("b2:b20")Jeśli cell.Value = "usuń" Wtedycell.EntireRow.DeleteZakończ, jeśliNastępna komórkaNapis końcowy |
Więcej przykładów usuwania wierszy i kolumn
Usuń zduplikowane wiersze
Ten kod usunie wszystkie zduplikowane wiersze w zakresie:
1 | Zakres("b2:c100").RemoveDuplicates Columns:=2 |
Zauważ, że ustawiliśmy Kolumny:=2. To mówi VBA, aby sprawdził obie pierwsze kolumny danych podczas rozważania, czy wiersze są duplikatami. Duplikat można znaleźć 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, odwołując się do ListObjects.
1 | ThisWorkbook.Sheets("Arkusz1").ListObjects("lista1").ListRows(2).Delete |
Usuń filtrowane wiersze
Aby usunąć tylko wiersze, które są widoczne po przefiltrowaniu:
1 | Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete |
Usuń wiersze w zakresie
Ten kod usunie wszystkie wiersze w zakresie:
1 | Zakres("a1:a10").EntireRow.Delete |
Usuń wybrane wiersze
Ten kod usunie wszystkie wybrane wiersze:
1 | Zaznaczenie.Cały wiersz.Usuń |
Usuń ostatni wiersz
Spowoduje to usunięcie ostatniego używanego wiersza w kolumnie B:
1 | Komórki(Rows.Count, 2).End(xlUp).EntireRow.Delete |
Zmieniając 2 na 1, możesz usunąć ostatnio używany wiersz w kolumnie A itd.:
1 | Komórki(Rows.Count, 1).End(xlUp).EntireRow.Delete |
Usuń kolumny według numeru
Aby usunąć kolumnę według jej numeru, użyj kodu takiego:
1 | Kolumny (2).Usuń |