Sor törlése a VBA

segítségével az Excel programban törölhet egy sort, ha jobb egérgombbal kattint a sor számára, majd kiválasztja a Törlés lehetőséget. De ha kifinomultabb módszerekkel szeretné törölni a sorokat, akkor a VBA-t kell használnia. Ez lehetővé teszi a sorok sokféle módon történő törlését.

egy adott sor törlése

a VBA-ban egy sor törlésének legalapvetőbb módja a sorszám használata.

Sub deleteSpecificRow()Rows(4).DeleteEnd Sub

Ez a makró minden egyes végrehajtásakor törli a negyedik sort.

több sor törlése

egyszerre néhány sort is törölhet. A sorszám kiválasztása helyett válasszon egy sortartományt.

Sub deleteMultipleRows()Rows("2:4").DeleteEnd Sub

törli a 2., 3. és 4. sort.

kijelölt sorok törlése

eddig olyan makrókat hoztunk létre, amelyek a kódon belül rögzített számokkal rendelkező sorokat töröltek. Ezúttal töröljük a sorokat a kijelölésből. Használjuk a következő kódot.

Sub deleteSelectedRows()Selection.EntireRow.DeleteEnd Sub

üres sorok törlése

ebben a példában az Excel azonosítja, hogy mely cellák üresek, kiválasztja őket, és eltávolítja azokat a sorokat, amelyekben vannak.

Sub deleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

Ez a makró csak akkor törli a sorokat a kiválasztásból, ha a “rossz sor”kifejezést tartalmazza.

VIGYÁZAT

ne feledje, hogy a szöveg nagybetűérzékeny.

Sub deleteRowswithSelectedText()For Each Cell In Selection If Cell.Value = "Bad Row" Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

kódelemzés

2. A hurok a Kiválasztás minden elemén megy keresztül.

3. Az Excel ellenőrzi a tényleges cellaértéket, és ha az érték pontosan “rossz sor”.

4. Ha a feltétel teljesül, az Excel törli a cella tartalmát. Nem tudjuk törölni a cellát, mert a cellapozíció megváltozik, és néhány “rossz sor” maradhat.

7. Ha az összes” rossz sor ” törlődik, akkor az Excel kiválasztja ezeket a cellákat.

8. Ezután törli a cellák sorait.

Ha törölni szeretné azokat a sorokat is, amelyek ebből a kifejezésből állnak, és nem csak a pontos egyezést, használja az InStr funkciót. Ez a függvény visszaadja a kifejezés első előfordulásának helyzetét.

változás

Cell.Value = "Bad Row"

a

InStr(Cell, "Bad Row") > 0

négy különböző példa van a munkalapon belül. Mindegyik visszaad egy pozíciót.

  • a “rossz sor”értéke 1
  • a” jó sor”értéke 0
  • az” 1 rossz sor”értéke 3
  • ” rossz sor !”1-et ad vissza

Ez azt jelenti, hogy a “jó sor” kivételével minden sor eltávolításra kerül.

Sor törlése, ahol a cellatípus karakterlánc

ebben a példában törölünk egy sort, ha a cellatípus karakterlánc.

első pillantásra úgy tűnik, hogy az A3, A4 és A5 cellák azonos típusúak. De ha megnézed, mi történik a színfalak mögött (Ctrl+`), látni fogod, hogy mindegyik más.

Sub deleteifString()Selection.SpecialCells(xlCellTypeConstants, 2).SelectSelection.EntireRow.DeleteEnd Sub

a második sorban a következő kód van: xlCellTypeConstants. Ez azt jelenti, hogy állandókat keresünk. A 2. szám a második típust jelenti, amely szöveg.

Az Excel csak a szöveg típusú értékeket választja ki.

az eredmény.

Páros/páratlan sorok törlése

most csak azokat a sorokat töröljük, amelyek egyenletesek.

Sub deleteEven()For Each Cell In Selection If Cell.Row Mod 2 = 0 Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

a kód nagyon hasonlít az előző példához. Csak egy különbség van.

cella.Sor Mod 2 = 0

Ez azt jelenti, ha az Osztás utáni maradék 0 (számokhoz: 2, 4, 6, 8, …) akkor a szám páros, ha 1, akkor páratlan szám (1, 3, 5, 6, …).

táblázatkezelő és Python rajongó.

hozzászólás Megtekintések: 72,354

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

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