Sådan kopieres en række i Excel VBA

click fraud protection

Brug af VBA til at programmere Excel er ikke så populær, som det engang var. Der er dog stadig masser af programmerere, der foretrækker det, når de arbejder med Excel. Hvis du er en af ​​disse mennesker, er denne artikel noget for dig.

Kopiering af en række i Excel VBA er den slags ting, som Excel VBA virkelig er nyttigt til. For eksempel vil du muligvis have en fil med alle dine kvitteringer med dato, konto, kategori, udbyder, produkt / service og omkostninger indtastet en linje ad gangen, som de forekommer - et eksempel på udvikling af regnskab i stedet for statisk regnskab. For at gøre dette skal du være i stand til at kopiere en række fra et regneark til et andet.

Et eksempel på Excel VBA-program, der kopierer en række fra et regneark til et andet - bruger kun tre kolonner for at gøre det lettere - indeholder:

  • En alfasøjle til tekst
  • En numerisk kolonne - der oprettes en automatisk sum på målarket
  • En datakolonne - den aktuelle dato og tid udfyldes automatisk

Overvejelser til skrivning af Excel VBA-kode

instagram viewer

For at udløse en begivenhed, der kopierer rækken, skal du gå med standarden - en knapformkontrol. I Excel skal du klikke på Indsæt på fanen Udvikler. Vælg derefter knappen for knapform og tegne den knap, hvor du vil have den. Excel viser automatisk en dialog for at give dig en chance for at vælge en makro udløst af klikhændelsen på knappen eller for at oprette en ny.

Der er flere måder at finde den sidste række på målarket, så programmet kan kopiere en række i bunden. Dette eksempel vælger at bevare nummeret på den sidste række i regnearket. For at bevare nummeret på den sidste række, skal du gemme dette nummer et eller andet sted. Dette kan være et problem, fordi brugeren muligvis ændrer eller sletter nummeret. For at komme omkring dette, skal du placere det i cellen direkte under formknappen. På den måde er det utilgængeligt for brugeren. (Den nemmeste ting at gøre er at indtaste en værdi i cellen og derefter flytte knappen over den.)

Kode til kopiering af en række ved hjælp af Excel VBA

Sub Add_The_Line () Dim nuværende række som heltalark ("Sheet1"). Vælg currentRow = Range ("C2"). Værdi Rækker (7) .Vælg valg. Kopier ark ("Ark2"). Vælg Rækker (aktuel række) .Vælg ActiveSheet. Indsæt Dim theDate som dato theDate = Now () Celler (currentRow, 4) .Value = CStr (theDate) Cells (currentRow + 1, 3) .Aktiver Dim rTotalCell Som Range Set rTotalCell = _ Ark ("Ark2"). Celler ( rækker. Tæl, "C"). Ende (xlUp). Offset (1, 0) rTotalCell = ArbejdsarkFunktion. Sum _ (Range ("C7", rTotalCell.) Offset (-1, 0))) Ark ("Ark1"). Område ("C2"). Værdi = nuværende række + 1 slutunderdel 

Denne kode bruger xlUp, et "magisk nummer" eller mere teknisk en talt konstant, som genkendes ved slutmetoden. Offset (1,0) bevæger sig simpelthen op ad en række i samme kolonne, så nettoeffekten er at vælge den sidste celle i kolonne C.

Med ord siger udsagnet:

  • Gå til den sidste celle i kolonne C (svarer til slut + pil ned).
  • Gå derefter tilbage til den sidste ubrugte celle (svarende til pilen End + op).
  • Gå derefter op i en celle til.

Den sidste erklæring opdaterer placeringen af ​​den sidste række.

VBA er sandsynligvis sværere end VB.NET, fordi du skal kende både VB og Excel VBA-objekter. Brug af xlUP er et godt eksempel på den form for specialiseret viden, der er kritisk for at kunne skrive VBA-makroer uden at slå op i tre forskellige ting for hver udsagn, du koder. Microsoft har gjort store fremskridt med at opgradere Visual Studio-editoren for at hjælpe dig med at finde ud af den rigtige syntaks, men VBA-editoren har ikke ændret sig meget.

instagram story viewer