Nola bikoiztu orri bat Excel-en VBA-rekin

  • Partekatu Hau
Michael Brown

Tutorialak makro bilduma bat eskaintzen du Excel-en orriak bikoizteko: kopiatu eta aldatu izena gelaxken balioaren arabera, kopiatu hainbat orri, kopiatu lan-orri aktibo bat beste fitxategi batera ireki gabe, eta abar.

Excel-en orriak eskuz kopiatzea nahiko azkarra eta erraza da... behin edo bitan egiten bada. Hainbat orri bikoiztea aspergarria da eta denbora asko eskatzen du. Orrialde honetan, zeregin hau automatizatzeko makro erabilgarri batzuk aurkituko dituzu.

    Excel VBA orria lan-liburu berrira kopiatzeko

    Lerro bakarreko makro honek egiten du. bere izenak iradokitzen duena zehazki - orri aktiboa lan-liburu berri batera kopiatzen du.

    Public Sub CopySheetToNewWorkbook() activeSheet.Copy End Sub

    Kopiatu hainbat orri Excel-en VBArekin

    Nahi baduzu kopiatu lan-liburu aktiboko hainbat orri berri batera, hautatu interesgarri diren lan-orri guztiak eta exekutatu makro hau:

    Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End Sub

    Excel VBA orria beste lan-liburu batera kopiatzeko

    Kopiatutako orria txertatu nahi duzun tokiaren arabera, erabili makro hauetako bat.

    Kopiatu orria beste lan-liburu baten hasieran

    Makro honek orri aktiboa kopiatzen du aurretik. Helmuga fitxategiko gainerako lan-orri guztiak, Liburua1 adibide honetan. Beste fitxategi batera kopiatzeko, ordezkatu "Book1.xlsx" helburuko lan-liburuaren izen osoarekin.

    Public SubCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End Sub

    Kopiatu orria beste lan-liburu baten amaierara

    Kode zati honek lan-orri aktiboa bikoizten du eta kopia Liburu1 ren amaieran jartzen du. Berriz ere, gogoratu "Book1.xlsx" zure destinoko lan-liburuaren izenarekin ordezkatzea.

    Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx") " ).Lan-orriak.Zenbaketa) End Sub

    Oharra. Makroek funtziona dezaten, helburuko lan-liburua zure disko gogorrean edo sarean gorde behar da.

    Kopiatu orria hautatutako lan-liburu batera

    Uneko orria irekita dagoen edozein lan-liburutara kopiatu ahal izateko, Erabiltzaile-inprimakia ( UserForm1 izenekoa) ListBox kontrol batekin ( ListBox1 izenekoa) eta bi botoirekin sor dezakezu:

    Ondoren, egin klik bikoitza formularioan eta itsatsi beheko kodea Kode leihoan:

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every Wbk Application.Workbooks ListBox1.AddItem (wbk.Name) Hurrengo amaiera Azpi pribatua KomandoButton1_Click() ListBox1.ListIndex > -1 Then SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Ni.Hide End Sub

    Erabiltzaile formularioa jarrita, hauetako bat erabil dezakezu kopiatzeko makroakorri aktiboa zure aukeratutako lan-liburura.

    Kopiatu orria hautatutako lan-liburuaren hasierara :

    Public Sub CopySheetToBeginningAnotherWorkbook() Kargatu UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook " " ) Then activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Unload UserForm1 End Sub

    Kopiatu orria hautatutako lan-liburuaren amaierara :

    Public Sub CopySheetToEndAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "" ) Then activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets( _ Workbooks.SelectedForm1.SelectedWorkbook) . End Sub

    Excel-en exekutatzen denean, makroak unean irekitako lan-liburu guztien zerrenda erakutsiko dizu. Behar duzuna hautatu eta Ados sakatu:

    Excel makroa orria kopiatzeko eta izena aldatzeko

    Orri bat Excel-en kopiatzen duzunean, erreplika bat ematen zaio. izena Orria1 (2) bezalako formatu lehenetsian. Hurrengo makroek lehenetsitako izena eskuz aldatzeko arazoak aurreztuko dizkizute.

    Kode honek lan-orri aktiboa bikoizten du, kopiari "Proba-orria" izendatzen dio (aske duzu nahi duzun beste izen batekin ordezkatzeko) , eta kopiatutako orria uneko lan-liburuaren amaieran jartzen du.

    Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) Error on Berreki Next activeSheet.Name ="Test Sheet" End Sub

    Erabiltzaileak kopiatutako orriaren izena zehazten uzteko, erabili kode hau:

    Public Sub CopySheetAndRename() Dim newName As String Error On Berrekiteko Hurrengo newName = InputBox( "Idatzi kopiatutako lan-orriaren izena" ) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) Errore bat gertatuz gero Berreki Hurrengo activeSheet.Name = newName End If End Sub

    Abian jarritakoan, makroa hurrengo sarrera-koadroa bistaratzen du, eta bertan nahi duzun izena idatzi eta Ados sakatu:

    Excel makroa orria kopiatzeko eta gelaxka-balioaren arabera aldatzeko

    In zenbait egoeratan, komenigarriagoa izan daiteke kopiari gelaxka-balio zehatz batekin izendatzea, adibidez, zutabe-goiburu batekin. Horretarako, goiko kodea hartu eta unen aukeratutako gelaxkaren balioa automatikoki ematen diozu sarrera-koadroari. Aurreko adibidean bezala, kopia lan-liburu aktiboaren amaieran jarriko da.

    Zailena exekutatu aurretik zure erabiltzaileek beti gelaxka zuzena hautatzea izango litzateke. makroa :)

    Public Sub CopySheetAndRenameByCell() Dim newName As String Akatsean Berrikusi Hurrengo newName = InputBox( "Idatzi kopiatutako lan-orriaren izena" , "Kopiatu lan-orria" , ActiveCell.Value) Izen berria bada "" Ondoren ActiveSheet. Copy After:=Worksheets(Sheets.Count) Error on Berreki Next activeSheet.Name = newName End If End Sub

    Bestela, kodetu dezakezu helbidea.kopiari izena eman behar zaion gelaxka , beheko kodean A1 gelaxka. Kopiatutako lan-orriari beste gelaxka batean oinarrituta izendatzeko, ordezkatu A1 gelaxka-erreferentzia egoki batekin.

    Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range ( "A1" ).Value "" Then Error On Continue Next activeSheet.Name = wks.Range( "A1" ).Value End If wks.Activate End Sub

    Makroa lan-orria lan-liburu itxi batera kopiatzeko

    Makro honek orri aktiboa kopiatzen du itxitako lan-liburu baten amaieran. Beste lan-liburu baten izena ez dago kodean zehazten - makroak Windows Explorer leiho estandarra irekiko du eta helmugako edozein fitxategi aukeratzeko aukera emango dizu:

    Fitxategia hautatu ondoren eta egin klik Ireki , makroak orri aktiboa kopiatuko du eta helburuko lan-liburua automatikoki itxiko du.

    Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook As Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Fitxategiak (*.xlsx), *.xlsx" ) If fileName False Then Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closedBook = Lan-koadernoak. Ireki (fitxategiaren izena) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closedBook. Itxi ( True ) Application.ScreenUpdating = True End If End Sub

    Excel VBA orria beste lan-liburu batetik kopiatzeko gabeirekitzea

    Makro honek beste Excel fitxategi batetik lan-orri bat kopiatzeko aukera ematen dizu ireki gabe. Kopiatutako orria uneko lan-koadernoaren amaieran txertatuko da.

    Gogoan izan kodean ordezkapen pare bat egitea:

    • C:\Users\XXX\Documents\ Target_Book.xlsx orri bat kopiatu nahi duzun lan-liburuaren benetako bide eta izenera aldatu behar da.
    • Sheet1 kopiatu nahi duzun orriaren izenarekin ordezkatu behar da.
    Public Sub CopySheetFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = False Ezarri sourceBook = Lan-koadernoak. Ireki ( "C:\Users\XXX\Documents\Target_Book.xlsx") sourceBook.Sheets( "Sheet1" ).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook. Itxi Application.ScreenUpdating = True End Sub

    Excel VBA orria hainbat aldiz bikoizteko

    Batzuetan, baliteke orri bera behin baino gehiagotan bikoiztu behar izatea, adibidez, datu multzo berean formula desberdinak probatzeko. Hau erraz egin daiteke honako makro honekin.

    Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Continue Next n = InputBox( "Zenbat kopia egin nahi dituzu orri aktiboaren?" ) n > = 1 Then For numtimes = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End If End Sub

    Ireki jatorrizko orria, exekutatu makroa, zehaztu orri aktiboaren zenbat kopiaegin nahi duzun eta egin klik Ados :

    Nola bikoiztu orriak Excel-en VBA-rekin

    Orri bat Excel-en kopiatzeko goiko makroetako batekin, VBA kodea zure liburuan txerta dezakezu edo gure adibide-koadernoko makro bat exekutatu.

    Nola gehitu makro bat zure lan-liburuan

    Txertatu kodean zure lan-liburuan, egin urrats hauek:

    1. Ireki kopiatu nahi duzun lan-orria.
    2. Sakatu Alt + F11 Visual Basic editorea irekitzeko.
    3. Aktibatuta ezkerreko panelean, egin klik eskuineko botoiarekin ThisWorkbook eta, ondoren, sakatu Txertatu > Modulua .
    4. Itsatsi kodea Kodearen leihoan.
    5. Sakatu F5 makroa exekutatzeko.

    Pausoz pauso argibide zehatzak ikusteko, ikusi Nola txertatu VBA kodea Excel-en.

    Nola exekutatu Gure adibideko lan-koadernoko makro bat

    Bestela, gure ereduko lan-koadernoa deskargatu dezakezu Duplicate Excel Sheets-era eta hortik exekutatu kodea.

    Lagin-koadernoak makro hauek ditu:

    CopySheetToNewWorkbook - kua kopiatzen du alokatu lan-orria lan-liburu berri batera.

    CopySelectedSheets - hautatzen dituzun hainbat orri lan-liburu berri batera kopiatzen ditu.

    CopySheetToBeginningAnotherWorkbook - orri aktiboa kopiatzen du. beste lan-liburu baten hasierara.

    CopySheetToEndAnotherWorkbook - orri aktiboa beste Excel fitxategi baten amaierara kopiatzen du.

    CopySheetAndRename - uneko dokumentua bikoizten du. xafla,erabiltzaileak zehaztutakoaren izena aldatzen du, eta uneko lan-liburuko beste orri guztien ondoren jartzen du kopia.

    CopySheetAndRenamePredefined - orri aktiboa bikoizten du, kopiari gogor kodetutako izen bat ematen dio eta jartzen du. uneko lan-liburuaren amaieran.

    CopySheetAndRenameByCell - orri aktiboaren kopia bat egiten du eta hautatutako gelaxka-balioaren arabera izena aldatzen du.

    CopySheetAndRenameByCell2 - orri aktiboa kopiatzen du eta kodetutako gelaxka-helbidearen arabera izena aldatzen du.

    CopySheetToClosedWorkbook - orria lan-liburu itxi batera kopiatzeko aukera ematen du.

    CopySheetFromClosedWorkbook - beste Excel fitxategi batetik orri bat kopiatzeko aukera ematen dizu, ireki gabe.

    DuplicateSheetMultipleTimes - Excel-en orri bat hainbat aldiz bikoizteko aukera ematen du.

    To exekutatu makroa zure Excel-en, egin hauxe:

    1. Ireki deskargatutako lan-liburua eta gaitu edukia eskatzen bazaizu.
    2. Ireki zure lan-liburua eta nabigatu nahi duzun orrira. kopia.
    3. <1 7>Zure lan-orrian, sakatu Alt + F8 , hautatu interesgarria den makroa eta sakatu Exekutatu .

    Horrela bikoiztu dezakezu Excel-en fitxa bat VBA-rekin. Eskerrik asko irakurtzeagatik eta datorren astean gure blogean ikustea espero dut!

    Michael Brown teknologia-zale dedikatua da, software-tresnak erabiliz prozesu konplexuak sinplifikatzeko grina duena. Hamarkada bat baino gehiagoko esperientzia duen teknologia-industrian, Microsoft Excel eta Outlook-en eta Google Sheets eta Docs-en trebetasunak landu ditu. Michael-en bloga bere ezagutzak eta esperientziak besteekin partekatzera zuzenduta dago, produktibitatea eta eraginkortasuna hobetzeko aholku eta tutorial errazak eskaintzen ditu. Profesional ondua edo hasiberria izan, Michael-en blogak informazio baliotsuak eta aholku praktikoak eskaintzen ditu funtsezko software-tresna horiei etekinik handiena ateratzeko.