Kaip nukopijuoti eilutę „Excel VBA“

VBA naudojimas programuojant „Excel“ nėra toks populiarus kaip kadaise. Tačiau vis dar yra daugybė programuotojų, kurie teikia pirmenybę dirbdami su „Excel“. Jei esate vienas iš tų žmonių, šis straipsnis skirtas jums.

Kopijuojama eilutė „Excel“ VBA yra tas dalykas, kuriam „Excel VBA“ yra tikrai naudingas. Pvz., Galbūt norėsite turėti vieną visų kvitų failą su data, sąskaita, kategorija, teikėju, produktas / paslauga ir išlaidos įvestos vienoje eilutėje tuo metu, kai jos atsiranda - apskaitos raidos pavyzdys, o ne statinė apskaita. Norėdami tai padaryti, turite mokėti nukopijuoti eilutę iš vieno darbalapio į kitą.

„Excel VBA“ programos pavyzdyje, kuris kopijuoja eilutę iš vieno darbalapio į kitą - paprastumui naudoti tik tris stulpelius - yra:

  • Alfa stulpelis tekstas
  • Skaičių stulpelis - tiksliniame darbalapyje sukuriama automatinė suma
  • Datos stulpelis - dabartinė data ir laikas užpildomi automatiškai

„Excel VBA“ kodo rašymo pagrindai

Norėdami suaktyvinti įvykį, kuris kopijuoja eilutę, eikite įprastu mygtuko formos valdikliu. „Excel“ skirtuke Kūrėjas spustelėkite Įterpti. Tada pasirinkite mygtuko formos valdiklį ir nupieškite mygtuką ten, kur norite. „Excel“ automatiškai rodo dialogo langą, kad suteiktų galimybę pasirinkti a

instagram viewer
makro suaktyvinamas dėl mygtuko paspaudimo įvykio arba norint sukurti naują.

Yra keli būdai, kaip rasti paskutinę eilutę tiksliniame darbalapyje, kad programa galėtų nukopijuoti eilutę apačioje. Šis pavyzdys pasirenka paskutinį darbalapio eilutės numerį. Norėdami išlaikyti paskutinės eilės numerį, turite jį išsaugoti kur nors. Tai gali būti problema, nes vartotojas gali pakeisti arba ištrinti numerį. Norėdami apeiti tai, įdėkite jį į langelį tiesiai po formos mygtuku. Tokiu būdu vartotojui jis neprieinamas. (Lengviausia įvesti reikšmę langelyje ir perkelti mygtuką virš jos.)

Kodas eilutės kopijavimui naudojant „Excel VBA“

„Sub Add_The_Line“ () Sumenkinti „currentRow“ kaip sveikųjų skaičiuoklių lapus („1 lapas“). Pasirinkite „currentRow = Range“ („C2“). Vertės eilutės (7) .Pasirinkite pasirinkimą. Kopijuoti lapus („Sheet2“). Pasirinkite Rows (currentRow) .Pasirinkite ActiveSheet. Įklijuokite „Dim theDate“ kaip datą „TheDate = Now“ () langeliai („currentRow“, 4) .Value = CStr („TheDate“) langeliai („currentRow + 1, 3“) .Aktyvinkite „Dim rTotalCell“ kaip diapazono rinkinį „rTotalCell = _ Sheets“ („Sheet2“). Eilutės. Skaičiuoti, "C"). Pabaiga (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Sum _ (diapazonas („C7“, „rTotalCell“). Offset (-1, 0))) Sheets ("Sheet1"). Range ("C2"). Value = currentRow + 1 End Sub 

Šis kodas naudoja „xlUp“, „stebuklingą skaičių“ arba labiau techniškai išvardytą konstantą, kuri atpažįstama „End“ metodu. Poslinkis (1,0) paprasčiausiai juda viena eilute aukštyn tame pačiame stulpelyje, taigi grynasis efektas yra paskutinio C stulpelio langelio pasirinkimas.

Žodžiu, pareiškime sakoma:

  • Pereikite prie paskutinio C stulpelio langelio (atitinkančio galą + rodyklę žemyn).
  • Tada grįžkite į paskutinį nepanaudotą langelį (atitiktų rodyklę Pabaiga + aukštyn).
  • Tada eikite aukštyn dar viena kamera.

Paskutiniame sakinyje atnaujinama paskutinės eilutės vieta.

VBA tikriausiai yra sunkiau nei VB.NET, nes jūs turite žinoti ir VB, ir „Excel VBA“ objektus. „XlUP“ naudojimas yra geras specialių žinių, būtinų norint rašyti VBA makrokomandas, neieškant trijų skirtingų dalykų kiekvienam jūsų koduojamam teiginiui, pavyzdys. „Microsoft“ padarė didelę pažangą atnaujindama „Visual Studio“ redaktorių, kad padėtų išsiaiškinti teisingą sintaksę, tačiau VBA redaktorius beveik nepasikeitė.