Satura rādītājs
Šajā pamācībā ir sniegts makroekrānu kopums, lai dublētu lapas programmā Excel: kopēšana un pārdēvēšana, pamatojoties uz šūnu vērtību, vairāku lapu kopēšana, aktīvas darblapas kopēšana citā failā, to neatverot, un citi.
Manuāli kopēt lapas programmā Excel ir diezgan ātri un vienkārši... ja to veic tikai vienu vai divas reizes. Vairāku lapu dublēšana vairākas reizes ir garlaicīga un laikietilpīga. Šajā lapā atradīsiet vairākus noderīgus makrus, lai automatizētu šo uzdevumu.
Excel VBA, lai kopētu lapu jaunā darbgrāmatā
Šis vienkāršākais vienas rindiņas makrodarbības līdzeklis dara tieši to, ko norāda tā nosaukums, - kopē aktīvo lapu jaunā darbgrāmatā.
Public Sub CopySheetToNewWorkbook() activeSheet.Copy End SubVairāku lapu kopēšana programmā Excel, izmantojot VBA
Ja vēlaties kopēt vairākas lapas no aktīvās darbgrāmatas uz jaunu darbgrāmatu, atlasiet visas interesējošās darblapas un palaidiet šo makro:
Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End SubExcel VBA, lai kopētu lapu uz citu darbgrāmatu
Atkarībā no tā, kur vēlaties ievietot kopēto lapu, izmantojiet kādu no šiem makrouzdevumiem.
Loksnes kopēšana uz citas darbgrāmatas sākumu
Šis makronozīme kopē aktīvo lapu pirms visām pārējām darblapām galamērķa failā, Grāmata1 Lai kopētu uz citu failu, aizstāt "Book1.xlsx" ar mērķa darbgrāmatas pilnu nosaukumu.
Public Sub CopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End SubLoksnes kopēšana uz citas darbgrāmatas beigām
Šī koda daļa dublē aktīvo darblapu un novieto kopiju uz beigām. Grāmata1 . Atkal, lūdzu, atcerieties aizstāt "Book1.xlsx" ar galamērķa darbgrāmatas nosaukumu.
Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx" ).Worksheets.Count) End SubPiezīme. Lai makroekrāni darbotos, mērķa darbgrāmatai jābūt saglabātai cietajā diskā vai tīklā.
Loksnes kopēšana uz atlasīto darbgrāmatu
Lai varētu kopēt pašreizējo lapu uz jebkuru atvērto darbgrāmatu, varat izveidot lietotāja veidlapu (ar nosaukumu Lietotāja veidlapa1 ) ar ListBox kontrole ( nosaukts ListBox1 ) un divas pogas:
Pēc tam divreiz noklikšķiniet uz veidlapas un ielīmējiet tālāk norādīto kodu logā Kods:
Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Each wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Next End Sub Private Sub CommandButton1_Click() If ListBox1.ListIndex> -1 Then SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide EndSubKad Lietotāja veidlapa ir izveidota, varat izmantot kādu no tālāk minētajiem makrouzdevumiem, lai kopētu aktīvo lapu uz darbgrāmatu pēc savas izvēles.
Kopējiet lapu uz izvēlētās darbgrāmatas sākums :
Public Sub CopySheetToBeginningAnotherWorkbook() Ielādēt UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "" ) Then activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Izkraut UserForm1 End SubKopējiet lapu uz izvēlētās darbgrāmatas beigas :
Public Sub CopySheetToEndAnotherWorkbook() Ielādēt UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "" ) Then activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserForm1.SelectedWorkbook). _ Worksheets.Count) End If Izkāt UserForm1 End SubKad makroprogramma tiek palaista programmā Excel, tiek parādīts visu pašlaik atvērto darbgrāmatu saraksts. Atlasiet vajadzīgo darbgrāmatu un noklikšķiniet uz Labi:
Excel makro, lai kopētu lapu un pārdēvētu
Kad kopējat lapu programmā Excel, replikai tiek piešķirts nosaukums noklusējuma formātā, piemēram. Lapa1 (2) . Tālāk norādītie makroekrāni var jums atvieglot manuālu noklusējuma nosaukuma maiņu.
Šis kods dublē aktīvo darblapu, nosauc kopiju kā "Testa lapa" (varat to aizstāt ar jebkuru citu nosaukumu) un novieto kopēto lapu pašreizējās darbgrāmatas beigās.
Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = "Test Sheet" End SubLai lietotājs varētu norāda kopētās lapas nosaukumu , izmantojiet šo kodu:
Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( "Ievadiet kopētās darblapas nosaukumu" ) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End Sub End SubPalaižot makro, tiek parādīts šāds ievades logs, kurā ievadiet vēlamo nosaukumu un nospiediet OK:
Excel makro, lai kopētu lapu un pārdēvētu, pamatojoties uz šūnu vērtību
Dažās situācijās var būt ērtāk nosaukt kopiju ar konkrētu šūnas vērtību, piemēram, kolonnas galveni. Šim nolūkam vienkārši izmantojiet iepriekš minēto kodu un norādiet vērtību kolonnas pašreiz izvēlētā šūna tāpat kā iepriekšējā piemērā, kopija tiks ievietota aktīvās darbgrāmatas beigās.
Sarežģītākais būtu panākt, lai lietotāji pirms makra palaišanas vienmēr izvēlas pareizo šūnas :)
Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next newName = InputBox("Ievadiet kopētās darblapas nosaukumu" , "Copy worksheet" , ActiveCell.Value) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End SubVarat arī cietā koda šūnas adresi pēc kuras jānosauc kopija, šādā kodā - šūna A1. Lai nosauktu kopēto darblapu, pamatojoties uz citu šūnu, aizstāt A1 ar atbilstošu šūnas atsauci.
Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range( "A1" ).Value "" Then On Error Resume Next activeSheet.Name = wks.Range( "A1" ).Value End If wks.Activate End SubMakro, lai kopētu darblapu uz slēgtu darbgrāmatu
Šis makronokopē aktīvo lapu uz slēgtas darbgrāmatas beigām. Citas darbgrāmatas nosaukums kodā nav norādīts - makronokopēšanas programma atvērs standarta Windows Explorer logu un ļaus jums izvēlēties jebkuru galamērķa failu:
Pēc tam, kad esat izvēlējies failu un noklikšķiniet uz Atvērt , makronokopēs aktīvo lapu un automātiski aizvērs mērķa darbgrāmatu.
Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Files (*.xlsx), *.xlsx" ) If fileName False Then Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closedBook = Workbooks. Open (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count)closedBook. Close ( True ) Application.ScreenUpdating = True End If End SubExcel VBA, lai kopētu lapu no citas darbgrāmatas bez atvēršanas
Šis makronodrošinājums ļauj kopēt darblapu no cita Excel faila, to neatverot. Kopētā lapa tiks ievietota pašreizējās darbgrāmatas beigās.
Vienkārši atcerieties, ka kodā ir jāveic pāris aizvietojumu:
- C:\Users\XXX\Documents\Target_Book.xlsx jāmaina uz tās darbgrāmatas faktisko ceļu un nosaukumu, no kuras vēlaties kopēt lapu.
- Lapa1 jāaizstāj ar tās lapas nosaukumu, kuru vēlaties kopēt.
Excel VBA, lai dublētu lapu vairākas reizes
Dažkārt var rasties nepieciešamība dublēt vienu un to pašu lapu vairāk nekā vienu reizi, piemēram, lai pārbaudītu dažādas formulas vienā un tajā pašā datu kopā. To var viegli izdarīt, izmantojot šādu makro.
Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Resume Next n = InputBox( "Cik aktīvās lapas kopiju vēlaties izveidot?" ) If n>= 1 Then For numtimes = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End If End SubAtveriet oriģinālo lapu, palaidiet makro, norādiet, cik daudz aktīvās lapas kopiju vēlaties izveidot, un noklikšķiniet uz . LABI :
Kā dublēt lapas programmā Excel, izmantojot VBA
Lai kopētu Excel lapu ar kādu no iepriekš minētajiem makrouzdevumiem, varat vai nu ievietot VBA kodu savā grāmatā, vai arī palaist makro no mūsu parauga darbgrāmatas.
Kā pievienot makro darba burtnīcai
Lai ievadītu kodu darbgrāmatā, veiciet šādas darbības:
- Atveriet darblapu, kuru vēlaties kopēt.
- Nospiediet Alt + F11, lai atvērtu Visual Basic redaktoru.
- Kreisajā logā ar peles labo pogu noklikšķiniet uz Šīdarbgrāmata un pēc tam noklikšķiniet uz Ievietot > Modulis .
- Ievietojiet kodu logā Kods.
- Nospiediet F5, lai palaistu makro.
Sīkāku soli pa solim sniegtos norādījumus skatiet sadaļā Kā ievietot VBA kodu programmā Excel.
Kā palaist makro no mūsu parauga darbgrāmatas
Varat arī lejupielādēt mūsu parauga darbgrāmatu, lai dublētu Excel lapas, un no tās palaist kodu.
Darba burtnīcā paraugā ir šādi makroekrāni:
CopySheetToNewWorkbook - kopē pašreizējo darblapu jaunā darbgrāmatā.
CopySelectedSheets - kopē vairākas atlasītās lapas jaunā darbgrāmatā.
CopySheetToBeginningAnotherWorkbook - kopē aktīvo lapu uz citas darbgrāmatas sākumu.
CopySheetToEndAnotherWorkbook - kopē aktīvo lapu uz cita Excel faila beigām.
CopySheetAndRename - dublē pašreizējo lapu, pārdēvē to, kā norādījis lietotājs, un novieto kopiju aiz visām pārējām pašreizējās darbgrāmatas lapām.
CopySheetAndRenamePredefined - dublē aktīvo lapu, piešķir kopijai kodētu nosaukumu un ievieto to pašreizējās darbgrāmatas beigās.
CopySheetAndRenameByCell - izveido aktīvās lapas kopiju un pārdēvē to, pamatojoties uz atlasītās šūnas vērtību.
CopySheetAndRenameByCell2 - kopē aktīvo lapu un pārdēvē to, pamatojoties uz cietā kodētā šūnas adresi.
CopySheetToClosedWorkbook - ļauj kopēt lapu uz slēgtu darbgrāmatu.
CopySheetFromClosedWorkbook - ļauj kopēt lapu no cita Excel faila, to neatverot.
DuplicateSheetMultipleTimes - ļauj dublēt Excel lapu vairākas reizes.
Lai palaistu makro programmu programmā Excel, vienkārši izpildiet šādu darbību:
- Atveriet lejupielādēto darbgrāmatu un iespējojiet saturu, ja tiek pieprasīts.
- Atveriet savu darbgrāmatu un pārejiet uz lapu, kuru vēlaties kopēt.
- Darba lapā nospiediet Alt + F8 , atlasiet interesējošo makroattēlu un noklikšķiniet uz Palaist .
Lūk, kā jūs varat dublēt lapu programmā Excel, izmantojot VBA. Paldies, ka izlasījāt, un ceru, ka nākamnedēļ tiksimies mūsu blogā!