VBA Kopiraj list / Kopiraj list u drugu radnu knjigu

Ovaj vodič će pokriti kako kopirati list ili radni list pomoću VBA.

Kopirajte radni list u novu radnu knjigu

Da biste kopirali radni list u novu radnu knjigu:

1 Listovi ("List1"). Kopiraj

Kopirajte ActiveSheet u novu radnu knjigu

Da biste kopirali ActiveSheet u novu radnu knjigu:

1 ActiveSheet.Copy

Kopirajte više listova u novu radnu knjigu

Da biste kopirali više listova u novu radnu knjigu:

1 ActiveWindow.SelectedSheets.Copy

Kopiraj list unutar iste radne knjige

Počeli smo tako što smo vam pokazali najjednostavniji primjer primjeraka listova: kopiranje listova u novu radnu knjigu. Ovi primjeri u nastavku pokazat će vam kako kopirati list u istoj radnoj knjizi. Prilikom kopiranja lista unutar radne knjige morate navesti lokaciju. Da biste naveli lokaciju, reći ćete VBA -u da premjesti radni list PRIJE ili NAKON drugog radnog lista.

Kopirajte list prije drugog lista

Ovdje ćemo navesti kopiranje i lijepljenje lista prije lista 2

1 Listovi ("List 1"). Kopiraj prije: = Listovi ("List 2")

Kopirajte list prije prvog lista

Umjesto da navedete naziv lista, možete odrediti i položaj lista. Ovdje kopiramo i lijepimo list prije prvog lista u radnoj bilježnici.

1 Listovi ("List 1"). Kopiraj prije: = Listovi (1)

Novonastali list sada će biti prvi list u radnoj knjizi.

Kopiraj list nakon posljednjeg lista

Pomoću svojstva After recite VBA da zalijepi list NAKON drugog lista. Ovdje ćemo kopirati i zalijepiti list nakon posljednjeg lista u radnoj knjizi:

1 Listovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)

Uočite da smo koristili listove. Prebroji za brojanje listova u radnoj knjizi.

Premjesti list

Također možete premjestiti list unutar radne knjige koristeći sličnu sintaksu. Ovaj kôd pomaknut će List 1 na kraj radne knjige:

1 Listovi ("List 1"). Premjesti nakon: = Listovi (Listovi.Broj)

Kopija i imenski list

Nakon kopiranja i lijepljenja lista, novonastali list postaje ActiveSheet. Dakle, za preimenovanje našeg novog lista, jednostavno upotrijebite ActiveSheet.Name:

123456 Sub CopySheetRename1 ()Listovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)ActiveSheet.Name = "Zadnji list"Kraj podm

Ako naziv lista već postoji, gornji kôd generirat će pogrešku. Umjesto toga možemo upotrijebiti “Next On Error Resume Next” kako bismo VBA -i rekli da zanemari imenovanje lista i nastavi s ostatkom postupka:

12345678 Sub CopySheetRename2 ()Listovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)Uključeno Slijedi nastavak greškeActiveSheet.Name = "Zadnji list"Uključeno Greška Idi na 0Kraj podm

Ili upotrijebite našu funkciju RangeExists za testiranje postoji li naziv lista prije pokušaja kopiranja lista:

123456789101112131415161718 Sub CopySheetRename3 ()Ako RangeExists ("LastSheet") TadaMsgBox "List već postoji."DrugoListovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)ActiveSheet.Name = "Zadnji list"Završi akoKraj podmRaspon funkcijaExists (WhatSheet As String, Opcijski ByVal WhatRange As String = "A1") Kao BooleanDim test kao rasponUključeno Slijedi nastavak greškePostavi test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RasponPostoji = Broj greške = 0Uključeno Greška Idi na 0Završna funkcija

Kopiraj i imenski list na temelju vrijednosti ćelije

Možda ćete htjeti kopirati i dati naziv listu na temelju vrijednosti ćelije. Ovaj će kôd nazvati Radni list na temelju vrijednosti ćelije u A1

12345678 Sub CopySheetRenameFromCell ()Listovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)Uključeno Slijedi nastavak greškeActiveSheet.Name = Raspon ("A1"). VrijednostUključeno Greška Idi na 0Kraj podm

Kopirajte radni list u drugu radnu knjigu

Do sada smo radili s kopiranjem tablica u radnoj knjizi. Sada ćemo obraditi primjere kopiranja i lijepljenja tablica u druge radne knjige. Ovaj kôd će kopirati list na početak druge radne knjige:

1 Listovi ("List 1"). Kopiraj prije: = Radne knjige ("Primjer.xlsm"). Listovi (1)

Ovo će kopirati radni list na kraj druge radne knjige.

1 Listovi ("List 1"). Kopiraj nakon: = Radne knjige ("Primjer.xlsm"). Listovi (Radne knjige ("Primjer.xlsm"). Listovi.Broj)

Primijetite da smo zamijenili 1 s Radne bilježnice (“Primjer.xlsm”). Listovi.Broj da biste dobili posljednji radni list.

Kopirajte radni list u zatvorenu radnu knjigu

Možda biste htjeli kopirati i radni list u zatvorenu radnu knjigu. Ovaj kôd će otvoriti zatvorenu radnu knjigu tako da u nju možete kopirati list.

123456789 Sub CopySheetToClosedWB ()Application.ScreenUpdating = NetačnoPostavi closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")Listovi ("List1"). Kopiraj prije: = zatvorenaKnjiga. Listovi (1)closedBook.Close SaveChanges: = IstinaApplication.ScreenUpdating = IstinaKraj podm

Kopirajte list iz druge radne knjige bez otvaranja

Nasuprot tome, ovaj kôd će kopirati radni list IZ zatvorene radne knjige bez da morate ručno otvarati radnu knjigu.

123456789 Sub CopySheetFromClosedWB ()Application.ScreenUpdating = NetačnoPostavi closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")closedBook.Sheets ("Sheet1"). Copy Before: = ThisWorkbook.Sheets (1)closedBook.Close SaveChanges: = FalseApplication.ScreenUpdating = IstinaKraj podm

Uočite da smo u oba ova primjera onemogućili ažuriranje zaslona pa se proces izvodi u pozadini.

Duplirani Excel list više puta

Također možete više puta duplicirati Excel list pomoću petlje.

1234567891011121314 Sub CopySheetMultipleTimes ()Dim n kao cijeli brojDim i Kao cijeli brojUključeno Slijedi nastavak grešken = InputBox ("Koliko kopija želite napraviti?")Ako je n> 0 TadaZa i = 1 To nActiveSheet.Copy After: = ActiveWorkbook.Sheets (Radni listovi.Broj)SljedećiZavrši akoKraj podm

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave