Ako odstrániť celý riadok v programe Excel pomocou VBA (príklady)

Pridávanie a odstraňovanie riadkov je súčasťou každodenných bežných úloh pri práci s Excelom.

Aj keď to môžete urobiť jednoducho zo samotného pracovného hárka, niekedy možno budete chcieť použiť trasu VBA na odstránenie riadkov v programe Excel. Môžu to byť odstránenie konkrétneho riadka, viacerých riadkov vo výbere, odstránenie alternatívnych riadkov alebo riadkov, ktoré majú konkrétnu hodnotu.

V tomto tutoriále vám ukážem, ako odstrániť riadky v programe Excel pomocou VBA (viac scenárov).

Začnime teda!

Odstráňte celý riadok pomocou VBA

Ak chcete odstrániť celý riadok v programe Excel pomocou VBA, musíte použiť metódu EntireRow.Delete.

Ak napríklad chcete z pracovného hárka odstrániť celý prvý riadok, môžete použiť nasledujúci kód:

Podradené riadky DeleteEntireRow () (1) .EntireRow.Delete End Sub

Vyššie uvedený kód najskôr určuje riadok, ktorý je potrebné odstrániť (čo sa robí zadaním čísla v zátvorke), a potom ho odstráni pomocou metódy EntireRow.Delete.

Môžete tiež odstrániť viac riadkov zadaním týchto riadkov v kóde.

Nasledujúci kód napríklad odstráni riadky číslo 1, 5 a 9 v pracovnom hárku:

Podradené riadky DeleteEntireRow () (9) .EndireRow.Delete riadky (5) .EntireRow.Delete Rows (1) .EntireRow.Delete End Sub

Vyššie uvedený kód používa rovnakú logiku, kde určuje čísla riadkov a Excel tieto riadky odstráni jeden po druhom.

DÔLEŽITÉ: Keď odstraňujete riadky s niečím podobným ako vyššie uvedený kód, nezabudnite začať odstraňovať zdola a potom ísť hore. Ak by ste napríklad začali na začiatku a najskôr odstránili riadok 1, všetky riadky pod ním by sa posunuli o jeden riadok vyššie a číslovanie by bolo vypnuté (pretože riadok 5 by sa zmenil na riadok 4 a tak ďalej)

Odstráňte všetky riadky vo výbere

V prípade, že chcete odstrániť všetky riadky vo vybratom rozsahu buniek, môžete použiť nižšie uvedený kód makra VBA:

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

Vyššie uvedený kód platí pre metódu EntireRow.Delete pre celý výber.

Odstrániť alternatívne riadky (alebo odstrániť každý tretí/štvrtý/n. Riadok)

Niekedy sa môže stať, že dostanete výpis dát, kde je každý druhý riadok (alebo tretí, štvrtý alebo N -tý riadok) zbytočný a je potrebné ho odstrániť.

Pracoval som s finančnými údajmi, kde bol každý druhý riadok prázdny a bolo ho potrebné vymazať.

Toto je typ scenára, kde VBA skutočne žiari.

Nasleduje kód VBA, ktorý prejde všetkými riadkami vo výbere a odstráni každý druhý riadok:

Sub DeleteAlternateRows () RCount = Selection.Rows.Count for i = RCount to 1 Step -2 Selection.Rows (i) .EntireRow.Delete Next i End Sub

Vysvetlím, ako tento kód VBA funguje.

Najprv som použil premennú RCount získate celkový počet riadkov vo výbere.

Potom som použil slučku For Next na spustenie toľkokrát, koľkokrát je tam riadkov. Ak napríklad existuje 12 riadkov, táto slučka bude prebiehať od 12 do 1 (tj. 12 -krát). Je dôležité spustiť to od posledného riadka vo výbere po prvý, pretože nechceme, aby sa čísla riadkov menili, keď je riadok odstránený.

Tiež sa používa krok -2, pretože musíme odstrániť všetky ostatné riadky (zdola nahor). V prípade, že chcete vymazať každý tretí riadok, môžete použiť -3.

V rámci slučky VBA som použil metódu Selection.Rows (i) .EntireRow.Delete na vymazanie každého alternatívneho riadka.

Odstráňte prázdne riadky pomocou VBA

Na vymazanie všetkých prázdnych riadkov môžete použiť aj metódu EntireRow.Delete.

Nasleduje kód VBA, ktorý vyberie prázdne bunky vo vybranej množine údajov a odstráni celý riadok.

Sub DeleteBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub

Vyššie uvedený kód používa vlastnosť SpecialCells na výber a odstránenie všetkých buniek, ktoré sú prázdne. Je to rovnaká metóda, ktorá nám tiež umožňuje použiť dialógové okno „Prejsť na špeciálne“ na výber všetkých prázdnych buniek.

Akonáhle sú tieto prázdne bunky identifikované pomocou SpecialCell, sú potom odstránené pomocou metódy EntireRow.Delete.

Poznámka: Táto metóda vyberie bunky, ktoré sú prázdne, a nekontroluje, či je celý riadok prázdny alebo nie. Ak je teda ľubovoľná bunka v riadku prázdna, stále by sa tým odstránil celý riadok.

Odstráňte riadky s konkrétnym slovom/hodnotou

Môžete tiež použiť jednoduchý kód VBA na prechod každou bunkou vo vybratom rozsahu a vymazanie všetkých riadkov, v ktorých bunka obsahuje konkrétny text alebo hodnotu.

Predpokladajme napríklad, že máte množinu údajov a ja chcem odstrániť všetky bunky, ktoré majú v stĺpci 2 výberu text Tlačiareň.

Nasleduje kód, ktorý to urobí:

Sub DeleteRowswithSpecificValue () For i = Selection.Rows.Count to 1 Step -1 If Cells (i, 2) .Value = "Printer" Then Cells (i, 2) .EntireRow.Delete End If Next i End Sub

Vyššie uvedený kód najskôr spočíta celkový počet riadkov vo výbere. Tým sa zaistí, že sa slučka spustí iba mnohokrát. Potom pomocou cyklu „For Next“ prejde všetkými bunkami v stĺpci 2.

Príkaz IF THEN ELSE sa potom používa na kontrolu hodnoty v každej bunke v stĺpci 2. A v prípade, že sa hodnota/text zhoduje so zadaným textom (v tomto prípade ide o „tlačiareň“).

V tomto prípade som skontroloval, či sa text zhoduje s konkrétnym reťazcom alebo nie. Môžete to urobiť aj pomocou hodnôt. Môžete napríklad odstrániť všetky riadky, v ktorých je hodnota predaja nižšia ako 1 000 alebo väčšia ako 1 000.

Poznámka: Tu je dôležité poznamenať, že slučka beží od Výber. Riadky. Počítať do 1 aby sa ubezpečil, že keď je riadok odstránený, neovplyvní to riadky nad ním.

Ako používať tento kód VBA

Teraz vám ukážem, ako použiť všetky kódy uvedené v tomto návode na odstránenie celého riadka.

Tieto kódy musíte skopírovať a vložiť do modulu v programe Excel VB Editor. Keď skopírujete tieto kódy, môžete spustiť makrokódy.

Nasledujú kroky na skopírovanie a vloženie týchto kódov VBA do modulu:

  1. Podržte kláves ALT a stlačte kláves F11 (alebo Funkcia + Možnosti + F11 v systéme Mac). Tým sa otvorí editor VB
  2. V editore VB budete mať vľavo prieskumníka projektu. Ak to nevidíte, prejdite na možnosť Zobraziť a potom kliknite na položku Project Explorer.
  3. Kliknite pravým tlačidlom myši na ľubovoľný objekt v programe Project Explorer (pre zošit, v ktorom chcete spustiť kód).
  4. Prejdite na položku Vložiť a potom kliknite na položku Modul. Tým sa vloží nový modul do zošita
  5. Skopírujte a prilepte vyššie uvedené kódy do modulu.

A na spustenie týchto kódov môžete umiestniť kurzor kdekoľvek v kóde (ktorý chcete spustiť) a stlačiť kláves F5 (alebo kliknúť na zelený trojuholník na paneli s nástrojmi VBA).

Tiež som napísal podrobný návod na rôzne spôsoby spustenia kódov makier VBA v programe Excel.

V prípade, že niektorý z týchto kódov potrebujete používať pomerne často, môžete tiež zvážiť ich pridanie do osobného zošita makier a potom do QAT. Kód vám tak bude k dispozícii v každom zošite jediným kliknutím.

Toto bolo niekoľko kódov VBA, ktoré môžete použiť na odstránenie celých riadkov v programe Excel (v rôznych scenároch). Rovnakú logiku je možné použiť aj v prípade, že chcete namiesto riadkov odstrániť stĺpce (so zodpovedajúcou úpravou v príkladoch kódu).

Dúfam, že ste našli tento návod užitočný!

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave