Uporaba VBA za programiranje Excela ni tako priljubljena kot nekoč. Vendar pa je še vedno veliko programerjev, ki imajo raje pri delu z Excelom. Če ste eden od teh ljudi, je ta članek za vas.
Kopiranje vrstice v Excelu VBA je vrsta, za katero je Excel VBA res uporaben. Na primer, morda želite imeti eno datoteko vseh prejemkov z datumom, računom, kategorijo, ponudnikom, izdelek / storitev in stroški, ki se vnesejo v posamezno vrstico, ko se pojavijo - primer nekega računovodskega spreminjanja statično računovodstvo. Če želite to narediti, morate biti sposobni kopirati vrstico z enega delovnega lista na drugega.
Vzorec programa Excel VBA, ki kopira vrstico z enega delovnega lista na drugega - za preprostost uporablja le tri stolpce - vsebuje:
- Alfa stolpec za besedilo
- Številčni stolpec - na ciljnem delovnem listu se ustvari samodejna vsota
- Stolpec z datumom - trenutni datum in čas se samodejno izpolni
Upoštevanje pisanja kode Excel VBA
Če želite sprožiti dogodek, ki kopira vrstico, pojdite s standardnim - gumbom gumba. V Excelu na kartici Developer kliknite Vstavi. Nato izberite gumb gumba in narišite gumb tam, kjer ga želite. Excel samodejno prikaže pogovorno okno, s katerim lahko izberete
makro sproži dogodek s klikom gumba ali ustvari novega.Obstaja več načinov, kako najti zadnjo vrstico na ciljnem delovnem listu, tako da lahko program kopira vrstico na dnu. V tem primeru je treba ohraniti številko zadnje vrstice na delovnem listu. Če želite ohraniti številko zadnje vrstice, jo morate nekje shraniti. To je lahko težava, ker lahko uporabnik številko spremeni ali izbriše. Če želite to obvladati, ga postavite v celico neposredno pod gumb obrazca. Tako je za uporabnika nedostopna. (Najlažje je vnesti vrednost v celico in nato premakniti gumb po njej.)
Koda za kopiranje vrstice z uporabo Excela VBA
Pod Add_The_Line () Dim currentRow kot celi listi ("Sheet1"). Izberite currentRow = obseg ("C2"). Vrednosti v vrednosti (7). Kopiranje listov ("Sheet2"). Izberite vrstice (trenutniRow). Izberite ActiveSheet. Prilepi Dim theDate As Date theDate = Now () Celice (currentRow, 4) .Value = CStr (theDate) Celice (currentRow + 1, 3). Aktiviraj Dim rTotalCell As Range Set rTotalCell = _ Sheets ("Sheet2"). Celice ( Vrstice Štetje, "C"). Konec (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Vsota _ (obseg ("C7", rTotalCell Odmik (-1, 0))) Sheets ("Sheet1"). Obseg ("C2") Vrednost = currentRow + 1 End Sub
Ta koda uporablja xlUp, "čarobno številko" ali bolj tehnično našteto konstanto, ki jo prepozna metoda End. Zamik (1,0) se preprosto premakne za eno vrstico v istem stolpcu, tako da je neto učinek izbira zadnje celice v stolpcu C.
V besedah izjava pravi:
- Pojdite na zadnjo celico v stolpcu C (kar ustreza koncu + puščica navzdol).
- Nato se vrnite nazaj do zadnje neuporabljene celice (kar ustreza puščici End + Up).
- Nato pojdi še eno celico.
Zadnji stavek posodobi lokacijo zadnje vrstice.
VBA je verjetno težji kot VB.NET, ker morate poznati objekte VB in Excel VBA. Uporaba xlUP je dober primer vrste specializiranega znanja, ki je ključnega pomena za pisanje makro VBA, ne da bi iskali tri različne stvari za vsako izjavo, ki jo kodirate. Microsoft je zelo napredoval pri nadgradnji urejevalnika Visual Studio, da bi lažje ugotovili pravilno skladnjo, vendar se urejevalnik VBA ni veliko spremenil.