Acasă
» MS OFFICE
»
Cum se utilizează VBA pentru a insera rânduri în Excel: 3 metode fiabile
Cum se utilizează VBA pentru a insera rânduri în Excel: 3 metode fiabile
Pentru a insera rânduri în Excel cu VBA, utilizați Insertmetoda pe un rând din foaia de lucru. Cele trei exemple de mai jos acoperă adăugarea unuia sau mai multor rânduri goale, inserarea unei copii a unui rând existent și crearea unui rând gol fără formatare moștenită. Fiecare macrocomandă vizează o foaie de lucru numită Data; înlocuiți acel nume cu numele exact al filei din registrul de lucru.
Pasul 1: Pregătiți registrul de lucru și deschideți editorul VBA
Utilizați versiunea desktop de Excel. Excel pentru web poate deschide un registru de lucru care conține macrocomenzi, dar nu poate crea, edita sau rula macrocomenzi VBA. Dacă registrul de lucru conține date importante, salvați o copie de rezervă înainte de a rula cod, deoarece inserarea rândurilor deplasează rândurile sub punctul de inserare.
Pe Windows, apăsați Alt+F11 pentru a deschide Visual Basic Editor (VBE). De asemenea, puteți alege Developer > Visual Basic . În VBE, selectați Insert > Module , apoi lipiți o macrocomandă în modulul gol. Instrucțiunile VBE de la Microsoft arată același flux de lucru pentru module.
Deschideți un modul VBA standard în Editorul Visual Basic pentru a adăuga macrocomanda.
Pasul 2: Alegeți una dintre cele trei metode de inserare a rândurilor
Metoda 1: Inserarea unuia sau mai multor rânduri goale
Această macrocomandă inserează un rând întreg din foaia de calcul deasupra rândului curent 4. Shift:=xlDownArgumentul îi spune programului Excel să mute celulele existente în jos pentru a face loc. Referința Range.Insert documentează opțiunile de deplasare și formatare.
Sub InsertOneRow()
ThisWorkbook.Worksheets("Data").Rows(4).Insert Shift:=xlDown
End Sub
Pentru a insera două rânduri începând de deasupra rândului 3, utilizați în schimb un interval de rânduri:
Sub InsertTwoRows()
ThisWorkbook.Worksheets("Data").Rows("3:4").Insert Shift:=xlDown
End Sub
Rândurile 3 și 4 sunt inserate, iar rândurile care erau acolo se mută în jos. Modificați numerele rândurilor pentru a alege unde încep noile rânduri și câte să adăugați. Referința ThisWorkbookînseamnă că macrocomanda trebuie stocată în registrul de lucru pe care doriți să îl modificați.
Inserarea rândurilor 3 și 4 creează un spațiu de două rânduri și deplasează înregistrările existente în jos.
Metoda 2: Inserarea unei copii a unui rând existent
Folosește această versiune atunci când noul rând trebuie să repete valorile, formulele și formatarea unui rând existent. Mai întâi creează spațiu la rândul 6, apoi copiază rândul 2 în acel spațiu nou. Rândul 2 original rămâne unde este. Microsoft documentează argumentul opțional de destinație în referința sa Range.Copy .
Sub InsertCopyOfRow()
With ThisWorkbook.Worksheets("Data")
.Rows(6).Insert Shift:=xlDown
.Rows(2).Copy Destination:=.Rows(6)
End With
End Sub
Înlocuiți 2cu numărul rândului sursă și 6cu rândul unde ar trebui să apară duplicatul. Deoarece întregul rând este copiat, verificați formulele și referințele din copia inserată înainte de a vă baza pe ele.
Rândul Alpha copiat apare la rândul 6; rândul sursă rămâne la rândul 2.
Metoda 3: Inserarea unui rând fără formatare copiată
Excel poate prelua formatarea dintr-un rând vecin într-un rând inserat. Introduceți rândul, apoi apelați ClearFormatsla acesta pentru a elimina formatarea respectivă:
Sub InsertUnformattedRow()
With ThisWorkbook.Worksheets("Data")
.Rows(3).Insert Shift:=xlDown
.Rows(3).ClearFormats
End With
End Sub
Aceasta metodă șterge formatarea pe rândul din foaia de lucru inserată. Nu șterge valorile din alte rânduri. Documentația ClearFormats de la Microsoft descrie metoda.
ClearFormats elimină formatarea celulei moștenită din rândul inserat.
Pasul 3: Rulați macrocomanda și verificați rezultatul
Reveniți la VBE, plasați cursorul oriunde în interiorul procedurii pe care doriți să o executați și apăsați F5 . De asemenea, puteți reveni la Excel și utiliza Dezvoltator > Macrocomenzi , selecta numele macrocomenzii și alege Executare . Consultați ghidul Microsoft pentru rularea unei macrocomenzi în Excel pentru opțiunile disponibile.
Verificați dacă rândul sau rândurile așteptate au fost inserate în foaia de lucru dorită înainte de salvare. Dacă doriți să păstrați codul VBA în registrul de lucru, salvați-l ca registru de lucru Excel cu macrocomenzi activate (.xlsm) ; salvarea ca .xlsxfișier obișnuit nu păstrează macrocomenzile VBA. Microsoft explică acest lucru în instrucțiunile sale de salvare a macrocomenzilor . Executați macrocomenzi numai din surse în care aveți încredere și urmați politica de securitate a macrocomenzilor a organizației dvs.
Probleme frecvente
„Indice în afara intervalului”: Numele foii de lucru din cod nu corespunde exact cu numele filei. Actualizați "Data", inclusiv spațiile dacă fila le conține.
Rândurile apar în registrul de lucru greșit: Codul folosește ThisWorkbook, care se referă la fișierul care conține macrocomanda. Stocați modulul în registrul de lucru pe care intenționați să îl editați.
Nimic nu rulează într-un browser: Deschideți fișierul în Excel pentru desktop; macrocomenzile VBA nu pot fi rulate în Excel pentru web. Consultați instrucțiunile VBA pentru Excel pentru web de la Microsoft .