VBA Delete Entire Row or Column – Automate ExcelAutomate Excel

Acest tutorial va demonstra diferite moduri de a șterge rânduri și coloane în Excel folosind VBA.

Delete Entire Row or Column

Pentru a șterge un rând întreg în VBA folosiți această linie de cod:

Rows(1).Delete

Observați că folosim metoda Delete pentru a șterge un rând.

În loc să faceți referire la obiectul Rows, puteți face referire la rânduri pe baza obiectului Range cu EntireRow:

Range("a1").EntireRow.Delete

În mod similar, pentru a șterge o coloană întreagă, utilizați aceste linii de cod:

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

Delete Multiple Rows or Columns

Utilizând aceeași logică, puteți, de asemenea, șterge mai multe rânduri deodată:

Rows("1:3").Delete

sau coloane:

Columns("A:C").Delete

Observați că aici facem referire la numerele / literele specifice ale rândurilor și coloanelor înconjurate de ghilimele.

Desigur, puteți, de asemenea, să faceți referire la EntireRow al unui interval:

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

Nota: Exemplele de mai jos demonstrează doar ștergerea rândurilor, totuși, după cum puteți vedea mai sus, sintaxa este practic identică pentru ștergerea coloanelor.

Delete Blank / Empty Rows

Acest exemplu va șterge un rând dacă întregul rând este gol:

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

Se utilizează funcția Excel worksheet: COUNTA.

Delete Row if Cell is Blank

Acest exemplu va șterge un rând dacă o anumită coloană din acel rând este goală (în acest caz, coloana B):

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

Delete Row Based on Cell Value

Acest exemplu va parcurge în buclă un interval și va șterge rândurile dacă o anumită valoare a celulei din acel rând spune „delete”.

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

Mai multe exemple de ștergere a rândurilor și coloanelor

Delete Duplicate Rows

Acest cod va șterge toate rândurile duplicate dintr-un interval:

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

Observați că am setat Columns:=2. Acest lucru îi spune lui VBA să verifice atât primele două coloane de date atunci când analizează dacă rândurile sunt duplicate. Un duplicat este găsit doar atunci când ambele coloane au valori duplicate.

Dacă am fi setat acest lucru la 1, doar primul rând ar fi fost verificat pentru valori duplicate.

Delete Table Rows

Acest cod va șterge al doilea rând dintr-un tabel prin referire la ListObjects.

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

Delete Filtered Rows

Pentru a șterge numai rândurile care sunt vizibile după filtrare:

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

Delete Rows in Range

Acest cod va șterge toate rândurile din interval:

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

Delete Selected Rows

Acest cod va șterge toate rândurile selectate:

Selection.EntireRow.Delete

Delete Last Row

Acest cod va șterge ultimul rând folosit în coloana B:

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

Schimbând 2 în 1, puteți șterge ultimul rând folosit în coloana A, etc.:

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

Delete Columns by Number

Pentru a șterge o coloană în funcție de numărul ei, folosiți un cod ca acesta:

Columns (2).Delete

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.