Kuidas rida kopeerida Exceli VBA-s

VBA kasutamine Exceli programmeerimiseks pole nii populaarne kui kunagi varem. Siiski on endiselt palju programmeerijaid, kes eelistavad seda Exceliga töötades. Kui olete üks neist inimestest, on see artikkel teie jaoks.

Rea kopeerimine Excelis VBA on selline asi, millest Excel VBA on tõesti kasulik. Näiteks võiksite olla kõigist kviitungitest ühe faili koos kuupäeva, konto, kategooria, pakkuja, toode / teenus ja maksumus sisestati ühel real korraga, nagu need tekivad - pigem areneva raamatupidamise näide staatiline raamatupidamine. Selleks peate saama rea ​​ühest töölehest teise kopeerida.

Näidisprogramm Excel VBA, mis kopeerib rea ühest töölehest teise - kasutades lihtsuse huvides ainult kolme veergu - sisaldab:

  • Alfa veerg tekst
  • Numbriline veerg - sihtlehele luuakse automaatne summa
  • Kuupäeva veerg - praegune kuupäev ja kellaaeg täidetakse automaatselt

Kaalutlused Exceli VBA-koodi kirjutamiseks

Rida kopeeriva sündmuse käivitamiseks minge tavalise nupuga nupu vormi juhtelementi. Klõpsake Excelis vahekaardil Arendaja nuppu Lisa. Seejärel valige nupu vormikontroll ja tõmmake nupp sinna, kuhu soovite. Excel kuvab automaatselt dialoogi, et anda teile võimalus valida a

instagram viewer
makro mille käivitab nupu klõpsamissündmus või uue loomine.

Sihtlehelt viimast rida saab leida mitmel viisil, et programm saaks rea allosas kopeerida. See näide valib töölehe viimase rea numbri säilitamise. Viimase rea numbri säilitamiseks peate selle numbri kuskile salvestama. See võib olla probleem, kuna kasutaja võib numbrit muuta või kustutada. Selle ümber liikumiseks asetage see lahtrisse otse vorminupu all. Nii on see kasutajale kättesaamatu. (Kõige lihtsam on sisestada väärtus lahtrisse ja seejärel liigutada nuppu selle kohal.)

Kood rea kopeerimiseks, kasutades Excel VBA-d

Sub Add_The_Line () Tühjendage currentRow täisarvudena ("Sheet1"). Valige currentRow = Range ("C2"). Väärtuse read (7) .Vali valik. Kopeeri lehed ("Sheet2"). Valige Rows (currentRow) .Valige ActiveSheet. Kleebi Dim theDate kui kuupäev theDate = Now () Cells (currentRow, 4) .Value = CStr (theDate) Cells (currentRow + 1, 3) .Aktiviseeri Dim rTotalCell as Range Set rTotalCell = _ Sheets ("Sheet2"). Ridad. Count, "C"). Lõpp (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Summa _ (vahemik ("C7", rTotalCell. Nihe (-1, 0))) Lehed ("Leht1"). Vahemik ("C2"). Väärtus = currentRow + 1 End Sub 

See kood kasutab xlUp, "maagilist arvu" või tehnilisemalt loendatud konstandit, mis on ära tuntud End meetodi abil. Nihe (1,0) liigub lihtsalt samas veerus ühe rea võrra ülespoole, nii et netoefektiks on valida C veerus viimane lahter.

Sõnadega öeldakse avalduses:

  • Minge veeru C viimasele lahtrile (sama kui lõpp + nool alla).
  • Seejärel minge tagasi tagasi tagasi tagasi viimase kasutamata lahtrini (sama kui lõpp + nool üles).
  • Seejärel minge veel ühe lahtri võrra üles.

Viimane avaldus värskendab viimase rea asukohta.

VBA on tõenäoliselt raskem kui VB.NET, kuna peate teadma nii VB kui ka Exceli VBA objekte. XlUPi kasutamine on hea näide eriteadmistest, mis on kriitilise tähtsusega VBA-makrode kirjutamiseks ilma, et otsiksite iga kooditava lause kohta kolme erinevat asja. Microsoft on Visual Studio redigeerija värskendamisel teinud suuri edusamme, et aidata teil õiget süntaksit välja mõelda, kuid VBA redaktor pole palju muutunud.

instagram story viewer