Ștergerea unui rând cu VBA

în Excel, puteți șterge un rând făcând clic dreapta pe numărul rândului și apoi selectând ștergere. Dar când doriți să ștergeți rânduri folosind metode mai sofisticate, trebuie să utilizați VBA. Vă va permite să ștergeți rândurile în mai multe moduri diferite.

ștergeți un anumit rând

cel mai simplu mod de a șterge un rând în VBA este folosind numărul rândului.

Sub deleteSpecificRow()Rows(4).DeleteEnd Sub

aceasta va șterge al patrulea rând de fiecare dată când executați macrocomanda.

ștergeți mai multe rânduri

de asemenea, puteți șterge câteva rânduri simultan. În loc să selectați numărul rândului, selectați o gamă de rânduri.

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

se vor șterge rândurile 2, 3 și 4.

ștergeți rândurile selectate

până acum am creat macro-uri care au șters rândurile cu numere fixe din interiorul codului. De data aceasta, să ștergem rândurile dintr-o selecție. Să folosim următorul cod.

Sub deleteSelectedRows()Selection.EntireRow.DeleteEnd Sub

ștergeți rândurile goale

În acest exemplu, Excel identifică celulele goale, le selectează și elimină rândurile în care sunt prezente.

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

această macrocomandă șterge rândurile din selecție numai dacă conține expresia „rând rău”.

atenție

rețineți că textul este sensibil la majuscule și minuscule.

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

analiza codului

2. Bucla trece prin fiecare element din selecție.

3. Excel verifică valoarea reală a celulei și dacă valoarea este exact „rând rău”.

4. Dacă condiția este îndeplinită, Excel șterge conținutul celulei. Nu putem șterge celula, deoarece poziția celulei se va schimba și unele dintre „rânduri proaste” pot rămâne.

7. Când toate” rândurile rele ” sunt șterse, Excel Selectează aceste celule.

8. Apoi șterge rândurile acestor celule.

Dacă doriți, de asemenea, să ștergeți acele rânduri care constau din această frază și nu numai potrivirea exactă, utilizați funcția InStr. Această funcție returnează poziția primei apariții a expresiei.

schimbare

Cell.Value = "Bad Row"

la

InStr(Cell, "Bad Row") > 0

avem patru exemple diferite în interiorul foaia noastră de lucru. Fiecare dintre ele returnează o poziție.

  • „Bad Row” returnează 1
  • „good Row” returnează 0
  • „1 Bad Row” returnează 3
  • „Bad Row !”returnează 1

asta înseamnă că toate rândurile, dar „rând bun” vor fi eliminate.

ștergeți rândul în care tipul de celulă este un șir

În acest exemplu, vom șterge un rând dacă tipul de celulă este un șir.

la prima vedere, celulele A3, A4 și A5 par a fi de același tip. Dar când te uiți la ceea ce se întâmplă în spatele scenei (Ctrl+`), veți vedea că fiecare dintre ele este diferit.

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

În al doilea rând, aveți următorul cod: xlCellTypeConstants. Înseamnă că căutăm constante. Numărul 2 înseamnă al doilea tip, care este text.

Excel va alege numai valorile de tip text.

rezultatul.

ștergeți rândurile pare/impare

acum să ștergem doar acele rânduri care sunt pare.

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

codul este foarte similar cu cel din exemplul anterior. Există o singură diferență.

celulă.Rând mod 2 = 0

aceasta înseamnă, dacă restul după divizare este 0 (pentru numere: 2, 4, 6, 8, …) atunci numărul este par, dacă este 1, atunci este un număr impar(1, 3, 5, 6, …).

foaie de calcul și Python entuziast.

Vizualizări Post: 72,354

Lasă un răspuns

Adresa ta de email nu va fi publicată.