Kaip ištrinti visą eilutę „Excel“ naudojant VBA (pavyzdžiai)

Eilučių pridėjimas ir ištrynimas yra įprastų kasdienių užduočių dalis dirbant su „Excel“.

Nors tai galite padaryti lengvai iš paties darbalapio, kartais galbūt norėsite naudoti VBA maršrutą, kad ištrintumėte „Excel“ eilutes. Tai gali būti konkrečios eilutės, kelių pasirinkimo eilučių ištrynimas, alternatyvių eilučių arba tų, kurios turi tam tikrą vertę, ištrynimas.

Šioje pamokoje parodysiu, kaip ištrinti eilutes „Excel“ naudojant VBA (keli scenarijai).

Taigi pradėkime!

Ištrinkite visą eilutę naudodami VBA

Norėdami ištrinti visą „Excel“ eilutę naudodami VBA, turite naudoti „EntireRow.Delete“ metodą.

Pavyzdžiui, jei norite ištrinti visą pirmąją darbalapio eilutę, galite naudoti žemiau esantį kodą:

Sub DeleteEntireRow () Eilutės (1) .EntireRow.Delete End Sub

Aukščiau pateiktas kodas pirmiausia nurodo eilutę, kurią reikia ištrinti (tai daroma nurodant skaičių skliausteliuose), ir tada naudoja „EntireRow.Delete“ metodą, kad jį ištrintų.

Taip pat galite ištrinti kelias eilutes, nurodydami šias eilutes kode.

Pavyzdžiui, žemiau pateiktas kodas ištrins 1, 5 ir 9 eilutes darbalapyje:

Sub DeleteEntireRow () Eilutės (9) .EntireRow.Delete Rows (5) .EntireRow.Delete Rows (1) .EntireRow.Delete End Sub

Pirmiau pateiktas kodas naudoja tą pačią logiką, kur nurodo eilučių numerius, o „Excel“ šias eilutes ištrins po vieną.

SVARBU: kai ištrinate eilutes naudodami kažką panašaus į aukščiau pateiktą kodą, nepamirškite pradėti ištrinti iš apačios ir tada eiti aukštyn. Pavyzdžiui, jei pradėsite nuo viršaus ir pirmiausia ištrinsite 1 eilutę, visos žemiau esančios eilutės bus perkeliamos viena eilute aukštyn ir numeracija išjungta (nes 5 eilutė taps 4 eilute ir pan.)

Ištrinkite visas pasirinkimo eilutes

Jei norite ištrinti visas pasirinkto langelių diapazono eilutes, galite naudoti toliau pateiktą VBA makro kodą:

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

Aukščiau pateiktas kodas taikomas „EntireRow.Delete“ metodui visam pasirinkimui.

Ištrinti alternatyvias eilutes (arba ištrinti kas trečią/ketvirtą/n. Eilutę)

Kartais galite gauti duomenų išrašą, kai kas antra eilutė (arba trečia, ketvirta ar N -oji eilutės) yra nenaudinga ir turi būti ištrinta.

Anksčiau dirbau su finansiniais duomenimis, kur kas antra eilutė buvo tuščia ir turėjo būti ištrinta.

Tai yra scenarijaus tipas, kai VBA tikrai šviečia.

Žemiau yra VBA kodas, kuris eis per visas pasirinkimo eilutes ir ištrins kas antrą eilutę:

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

Leiskite man paaiškinti, kaip veikia šis VBA kodas.

Pirma, aš naudoju kintamąjį RCount kad gautumėte bendrą pasirinktų eilučių skaičių.

Tada aš naudoju ciklą „Kitas“, kad tai paleisčiau tiek kartų, kiek yra eilučių. Pavyzdžiui, jei yra 12 eilučių, ši kilpa veiks nuo 12 iki 1 (t. Y. 12 kartų). Svarbu tai atlikti nuo paskutinės atrankos eilutės iki pirmosios, nes nenorime, kad ištrynus eilutę pasikeistų eilučių numeriai.

Taip pat naudojamas 2 veiksmas, nes turime ištrinti kas antrą eilutę (iš apačios į viršų). Jei norite ištrinti kas trečią eilutę, galite naudoti -3.

VBA cikle naudoju Selection.Rows (i) .EntireRow.Delete metodą, kad ištrintumėte kiekvieną alternatyvią eilutę.

Ištrinkite tuščias eilutes naudodami VBA

Taip pat galite naudoti „EntireRow.Delete“ metodą, kad ištrintumėte visas tuščias eilutes.

Žemiau yra VBA kodas, kuris pasirinks tuščias pasirinkto duomenų rinkinio ląsteles ir ištrins visą eilutę.

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

Aukščiau pateiktas kodas naudoja ypatybę „SpecialCells“, kad pasirinktų ir ištrintų visas tuščias ląsteles. Tai tas pats metodas, kuris taip pat leidžia mums naudoti dialogo langą „Eiti į specialųjį“, kad pasirinktume visas tuščias ląsteles.

Kai šios tuščios ląstelės identifikuojamos naudojant „SpecialCell“, jos ištrinamos naudojant „EntireRow.Delete“ metodą.

Pastaba: Šis metodas pasirenka tuščias ląsteles ir netikrina, ar visa eilutė tuščia, ar ne. Taigi, jei kas nors langelis tuščias iš eilės, tai vis tiek ištrins visą eilutę.

Ištrinkite eilutes su konkrečiu žodžiu/verte

Taip pat galite naudoti paprastą VBA kodą, kad pereitumėte prie kiekvieno pasirinkto diapazono langelio ir ištrintumėte visas eilutes, kuriose langelyje yra tam tikras tekstas ar reikšmė.

Pavyzdžiui, tarkime, kad turite duomenų rinkinį ir noriu ištrinti visas ląsteles, kurių pasirinkimo 2 stulpelyje yra tekstas Spausdintuvas.

Žemiau yra kodas, kuris tai padarys:

Sub DeleteRowswithSpecificValue () For i = Selection.Rows.Count To 1 Step -1 If Cells (i, 2) .Value = "Printer" Tada Cells (i, 2).

Pirmiau pateiktas kodas skaičiuoja bendrą pasirinktų eilučių skaičių. Tai užtikrins, kad ciklas būtų paleistas tik tiek kartų. Tada ji naudoja „For Next loop“, kad pereitų visas 2 stulpelio ląsteles.

Tuomet IF THEN ELSE sakinys naudojamas vertei patikrinti kiekviename 2 stulpelio langelyje. Ir jei vertė/tekstas atitinka nurodytą tekstą (šiame pavyzdyje tai yra „Spausdintuvas“).

Šiame pavyzdyje aš patikrinau, ar tekstas atitinka konkrečią eilutę, ar ne. Tai taip pat galite padaryti naudodami vertybes. Pavyzdžiui, galite ištrinti visas eilutes, kuriose pardavimo vertė yra mažesnė nei 1000 arba didesnė nei 1000.

Pastaba: čia svarbu atkreipti dėmesį į tai, kad kilpa eina iš Pasirinkimas. Eilutės. Skaičiuoti iki 1 kad įsitikintumėte, jog kai eilutė ištrinama, ji neturi įtakos eilutėms virš jos.

Kaip naudotis šiuo VBA kodu

Dabar leiskite man parodyti, kaip naudoti visus šioje pamokoje paminėtus kodus ištrinti visą eilutę.

Turite nukopijuoti ir įklijuoti šiuos kodus į „Excel VB Editor“ modulį. Nukopijavę šiuos kodus, galite paleisti makro kodus.

Toliau pateikiami žingsniai, kaip nukopijuoti ir įklijuoti šiuos VBA kodus į modulį:

  1. Laikykite nuspaudę ALT klavišą ir paspauskite klavišą F11 (arba „Function + Option + F11“, jei naudojate „Mac“). Tai atidarys VB redaktorių
  2. VB redaktoriuje turėsite projekto tyrinėtoją kairėje. Jei nematote, eikite į parinktį Rodinys ir spustelėkite „Project Explorer“.
  3. Dešiniuoju pelės mygtuku spustelėkite bet kurį „Project Explorer“ objektą (darbaknygėje, kurioje norite paleisti kodą).
  4. Eikite į „Įterpti“ ir spustelėkite „Modulis“. Tai įterps naują darbo knygos modulį
  5. Nukopijuokite ir įklijuokite aukščiau pateiktus kodus modulyje.

Norėdami paleisti šiuos kodus, galite perkelti žymeklį į bet kurią kodo vietą (kurią norite paleisti) ir paspausti klavišą F5 (arba spustelėkite žalią trikampį VBA įrankių juostoje).

Aš taip pat parašiau išsamią pamoką apie įvairius būdus, kaip paleisti VBA makro kodus „Excel“.

Jei jums reikia gana dažnai naudoti bet kurį iš šių kodų, taip pat galite apsvarstyti galimybę juos pridėti prie asmeninės makrokomandos darbaknygės, o tada prie QAT. Tokiu būdu kodas bus pasiekiamas bet kurioje jūsų darbaknygėje vienu paspaudimu.

Taigi tai buvo keletas VBA kodų, kuriuos galite naudoti ištrindami visas „Excel“ eilutes (skirtingais atvejais). Ta pati logika gali būti taikoma ir tuo atveju, jei norite ištrinti stulpelius, o ne eilutes (su atitinkamu koregavimu kodo pavyzdžiuose).

Tikimės, kad ši pamoka jums buvo naudinga!

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave