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ó.