VBA Teljes sor vagy oszlop törlése – Excel automatizálásaAutomate Excel

Ez a bemutató a sorok és oszlopok törlésének különböző módjait mutatja be az Excelben a VBA segítségével.

Teljes sor vagy oszlop törlése

Egy teljes sor törléséhez a VBA-ban ezt a kódsort használjuk:

Rows(1).Delete

A sor törléséhez a Delete módszert használjuk.

A Rows objektumra való hivatkozás helyett a sorokra a Range objektumuk alapján is hivatkozhatunk az EntireRow segítségével:

Range("a1").EntireRow.Delete

Hasonlóan egy teljes oszlop törléséhez a következő kódsorokat használjuk:

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

Második sor vagy oszlop törlése

Ezzel a logikával egyszerre több sort is törölhetünk:

Rows("1:3").Delete

vagy oszlopot:

Columns("A:C").Delete

Megjegyezzük, hogy itt idézőjelekkel körülvett konkrét sor- és oszlopszámokra/betűkre hivatkozunk.

Naná, hogy egy tartomány EntireRow-jára is hivatkozhatunk:

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

Figyelem: Az alábbi példák csak a sorok törlését mutatják be, azonban mint fentebb látható, a szintaxis gyakorlatilag azonos az oszlopok törlésére.

Üres/üres sorok törlése

Ez a példa akkor töröl egy sort, ha az egész sor üres:

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

Ez az Excel munkalap funkcióját használja: COUNTA.

Sor törlése, ha a cella üres

Ez egy sort töröl, ha a sor egy adott oszlopa üres (ebben az esetben a B oszlop):

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

Sor törlése a cellák értéke alapján

Ez egy tartományon végighalad, és sorokat töröl, ha a sor egy bizonyos cellájának értéke azt mondja, hogy “töröl”.

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

Még több sor és oszlop törlési példa

Duplikált sorok törlése

Ez a kód törli az összes duplikált sort egy tartományban:

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

Megjegyezzük, hogy az oszlopokat:=2-re állítottuk. Ez azt mondja a VBA-nak, hogy az adatok első két oszlopát is ellenőrizze, amikor azt vizsgálja, hogy a sorok duplikáltak-e. Csak akkor talál duplikátumot, ha mindkét oszlopban vannak duplikált értékek.

Ha ezt 1-re állítottuk volna, akkor csak az első sort ellenőriztük volna duplikált értékek szempontjából.

Táblázat sorainak törlése

Ez a kód a ListObjects hivatkozással törli a második sort a táblázatban.

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

Szűrt sorok törlése

Csak a szűrés után látható sorok törlése:

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

Tartományban lévő sorok törlése

Ez a kód a tartományban lévő összes sort törli:

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

Kiválasztott sorok törlése

Ez a kód az összes kijelölt sort törli:

Selection.EntireRow.Delete

Utolsó sor törlése

Ez a kód a B oszlop utolsó használt sorát törli:

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

A 2-t 1-re változtatva az A oszlop utolsó használt sorát törölheti, stb.:

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

Oszlopok törlése szám szerint

Az oszlopok szám szerinti törléséhez a következő kódot használja:

Columns (2).Delete

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.