Si të kopjoni një fletë në Excel me VBA

  • Shperndaje Kete
Michael Brown

Udhëzuesi ofron një koleksion makrosh për kopjimin e fletëve në Excel: kopjoni dhe riemërtoni bazuar në vlerën e qelizës, kopjoni fletë të shumta, kopjoni një fletë pune aktive në një skedar tjetër pa e hapur atë dhe më shumë.

Kopjimi manual i fletëve në Excel është mjaft i shpejtë dhe i drejtpërdrejtë... nëse kryhet vetëm një ose dy herë. Dublikimi i fletëve të shumta disa herë është i mërzitshëm dhe kërkon kohë. Në këtë faqe, do të gjeni një sërë makrosh të dobishme për të automatizuar këtë detyrë.

    Excel VBA për të kopjuar fletën në librin e ri të punës

    Kjo makro më e thjeshtë me një linjë bën pikërisht atë që sugjeron emri i saj - kopjon fletën aktive në një libër të ri pune.

    Nën Publike CopySheetToNewWorkbook() activeSheet.Copy End Sub

    Kopjo fletë të shumta në Excel me VBA

    Nëse dëshiron të kopjoni disa fletë nga libri aktiv i punës në një të ri, zgjidhni të gjitha fletët e punës me interes dhe ekzekutoni këtë makro:

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

    Excel VBA për të kopjuar fletën në një libër tjetër pune

    Në varësi të vendit ku dëshironi të futni fletën e kopjuar, përdorni një nga makrot e mëposhtme.

    Kopjo fletën në fillim të një libri tjetër pune

    Kjo makro kopjon fletën aktive përpara të gjitha fletët e tjera të punës në skedarin e destinacionit, Libri1 në këtë shembull. Për të kopjuar në një skedar tjetër, zëvendësoni "Book1.xlsx" me emrin e plotë të librit tuaj të punës të synuar.

    Nën PublikCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) Fund Sub

    Kopjo fletën në fund të një libri tjetër pune

    Kjo pjesë e kodit kopjon fletën aktive të punës dhe vendos kopjen në fund të Librit1 . Përsëri, ju lutemi mos harroni të zëvendësoni "Book1.xlsx" me emrin e librit tuaj të punës në destinacion.

    Nën Publike CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx " ).Fletët e punës.Count) Fund Sub

    Shënim. Që makrot të funksionojnë, libri i punës i synuar duhet të ruhet në hard diskun ose rrjetin tuaj.

    Kopjo fletën në një libër pune të zgjedhur

    Për të qenë në gjendje të kopjosh fletën aktuale në çdo libër pune të hapur, mund të krijoni një UserForm (me emrin UserForm1 ) me një kontroll ListBox ( me emrin ListBox1 ) dhe dy butona:

    Më pas, klikoni dy herë në formular dhe ngjisni kodin e mëposhtëm në dritaren e kodit:

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Fundi tjetër Nën Command Sub PrivateButton1_Click() If ListBox1.ListIndex > -1 Pastaj SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide End Sub

    Me UserForm në vend, ju mund të përdorni një nga sa vijon makro për të kopjuarfletën aktive në librin e punës që keni zgjedhur.

    Kopjo fletën në fillimin e librit të punës të zgjedhur :

    Nën-CopySheetToBeginningAnotherWorkbook() Ngarko UserForm1 UserForm1.Trego Nëse (UserForm1.SelectedWorkbook " " ) Pastaj activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook). Sheets(1) Fund If Unload UserForm1 End Sub

    Kopjo fletën në fundin e librit të punës të zgjedhur :

    Nën Publik CopySheetToEndAnotherWorkbook() Ngarko UserForm1 UserForm1.Trego If (UserForm1.SelectedWorkbook "" ) Pastaj activeSheet.Copy After:=Workbooks( _UserForm1.SelectedWorkbook).Sheets( _Workbooks(_UserFormCodeFormW1ork). End Sub

    Kur ekzekutohet në Excel, makro do t'ju tregojë një listë të të gjithë librave të punës të hapura aktualisht. Ju zgjidhni atë të nevojshme dhe klikoni OK:

    Makro Excel për të kopjuar fletën dhe riemëruar

    Kur kopjoni një fletë në Excel, kopjimit i jepet një emri në formatin e paracaktuar si Fleta1 (2) . Makrot e mëposhtme mund t'ju kursejnë nga telashet e ndryshimit manual të emrit të paracaktuar.

    Ky kod kopjon fletën aktive të punës, e emërton kopjen si "Fleta e testimit" (ju jeni të lirë ta zëvendësoni me çdo emër tjetër që ju pëlqen) , dhe vendos fletën e kopjuar në fund të librit aktual të punës.

    Publike Nën CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name ="Test Sheet" Fund Sub

    Për të lejuar përdoruesin të specifikojë emrin për fletën e kopjuar , përdor këtë kod:

    Nën Publike CopySheetAndRename() Zbeh newName si varg në gabim Rifillo Next newName = InputBox( "Vendosni emrin për fletën e kopjuar të punës" ) Nëse newName "" Pastaj activeSheet.Copy After:=Worksheets(Sheets.Count) Në gabim Rifillo Tjetra activeSheet.Name = newName Fundi If End Sub

    Pas ekzekutimit, makro shfaq kutinë e mëposhtme të hyrjes, në të cilën shkruani emrin e dëshiruar dhe shtypni OK:

    Makro Excel për të kopjuar fletën dhe riemërtuar bazuar në vlerën e qelizës

    Në në disa situata, mund të jetë më i përshtatshëm të emërtoni një kopje me një vlerë specifike qelize, për shembull, një kokë kolone. Për këtë, ju thjesht merrni kodin e mësipërm dhe jepni automatikisht vlerën e qelizës së zgjedhur aktualisht në kutinë e hyrjes. Ashtu si me shembullin e mëparshëm, kopja do të vendoset në fund të librit aktiv të punës.

    Pjesa më e ndërlikuar do të ishte që përdoruesit tuaj të zgjedhin gjithmonë qelizën e duhur përpara se të ekzekutohen makro :)

    Nën Publike CopySheetAndRenameByCell() Dim newName As String On Gabim Rifillo Next newName = InputBox( "Fut emrin për fletën e kopjuar të punës" , "Kopjo fletën e punës" , ActiveCell.Vlera) Nëse newName "" Pastaj activeSheet. Kopjo After:=Worksheets(Sheets.Count) Në gabim Rifillo Tjetra activeSheet.Name = newName Fund Nëse End Sub

    Përndryshe, mund të kodosh adresën eqeliza me të cilën duhet emërtuar kopja, qeliza A1 në kodin e mëposhtëm. Për të emërtuar fletën e punës të kopjuar bazuar në një qelizë tjetër, zëvendësoni A1 me një referencë të përshtatshme qelize.

    Nën Publike CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = ActiveSheet activeSheet.Copy After:=Worksheets (Fletë. Numërimi) Nëse wks.Range ( "A1" ).Vlera "" Pastaj në gabim Rifillo Tjetra activeSheet.Name = wks.Range( "A1" ).Vlera End If wks.Aktivizo End Sub

    Makro për të kopjuar fletën e punës në një libër pune të mbyllur

    Kjo makro kopjon fletën aktive në fund të një libri pune të mbyllur. Emri i një libri tjetër pune nuk është specifikuar në kod - makro do të hapë dritaren standarde të Windows Explorer dhe do t'ju lejojë të zgjidhni çdo skedar destinacioni:

    Pasi të zgjidhni skedarin dhe klikoni Open , makro do të kopjojë fletën aktive dhe do të mbyllë automatikisht librin e punës të synuar.

    Publike Nën CopySheetToClosedWorkbook() Emri i skedarit zbehtë Dim mbyllur Libri si libri i punës Dim aktualSheet si fletë pune Emri i skedarit = Application.GetOpenFilename( "Excel Skedarët (*.xlsx), *.xlsx" ) Nëse emri i skedarit False Pastaj Application.ScreenUpdating = Vendosja e rreme aktualeSheet = Application.activeSheet Set i mbyllur = Librat e punës. Hap (emri i skedarit) aktualSheet. Kopjo Pas:=closedBook.Sheets(closedBook.Worksheets.Count) mbyllurLibri. Mbylle ( e vërtetë ) Application.ScreenUpdating = Fundi i vërtetë If End Sub

    Excel VBA për të kopjuar fletën nga një libër tjetër pune pahapje

    Kjo makro ju mundëson të kopjoni një fletë pune nga një skedar tjetër Excel pa e hapur atë. Fleta e kopjuar do të futet në fund të librit aktual të punës.

    Vetëm mos harroni të bëni disa zëvendësime në kodin:

    • C:\Users\XXX\Documents\ Target_Book.xlsx duhet të ndryshohet në shtegun dhe emrin aktual të librit të punës nga i cili dëshironi të kopjoni një fletë.
    • Fleta 1 duhet të zëvendësohet me emrin e fletës që dëshironi të kopjoni.
    Publike Nën CopySheetFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = False Set sourceBook = Librat e punës. Hap ("C:\Users\XXX\Documents\Target_Book.xlsx") sourceBook.Sheets( "Sheet1" ).Kopjo Pas:=This Workbook.Sheets(ThisWorkbook.Sheets.Count) SourceBook. Mbyll Application.ScreenUpdating = True End Sub

    Excel VBA për të kopjuar fletën disa herë

    Ndonjëherë, mund t'ju duhet të kopjoni të njëjtën fletë më shumë se një herë, për shembull për të testuar formula të ndryshme në të njëjtin grup të dhënash. Kjo mund të bëhet lehtësisht me makron e mëposhtme.

    Publike Sub DuplicateSheetMultipleTimes() Dim n si numër i plotë në gabim Rifillo Next n = InputBox( "Sa kopje të fletës aktive dëshironi të bëni?" ) Nëse n > = 1 Pastaj Për numtimes = 1 Në n ActiveSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Fundi tjetër If End Sub

    Hapni fletën origjinale, ekzekutoni makro, specifikoni sa kopje të fletës aktiveqë dëshironi të bëni dhe klikoni OK :

    Si të dublikosh fletët në Excel me VBA

    Për të kopjuar një fletë në Excel me një nga makrot e mësipërme, ju ose mund të futni kodin VBA në librin tuaj ose të ekzekutoni një makro nga libri ynë shembull i punës.

    Si të shtoni një makro në librin tuaj të punës

    Për të futur kodin në librin tuaj të punës, kryeni këto hapa:

    1. Hapni fletën e punës që dëshironi të kopjoni.
    2. Shtypni Alt + F11 për të hapur Redaktuesin Visual Basic.
    3. Aktivizuar. në panelin e majtë, kliko me të djathtën ThisWorkbook dhe më pas kliko Fut > Moduli .
    4. Ngjit kodin në dritaren e Kodit.
    5. Shtypni F5 për të ekzekutuar makro.

    Për udhëzimet e hollësishme hap pas hapi, ju lutemi shihni Si të futni kodin VBA në Excel.

    Si të ekzekutoni një makro nga libri ynë i mostrës së punës

    Përndryshe, ju mund të shkarkoni modelin tonë të librit të punës në Duplicate Sheets Excel dhe të ekzekutoni kodin prej andej.

    Libri i punës mostër përmban makrot e mëposhtme:

    CopySheetToNewWorkbook - kopjon cu rrent fletën e punës në një libër të ri pune.

    CopySelectedSheets - kopjon fletë të shumta që zgjidhni në një libër të ri pune.

    CopySheetToBeginningAnotherWorkbook - kopjon fletën aktive në fillim të një libri tjetër pune.

    CopySheetToEndAnotherWorkbook - kopjon fletën aktive në fund të një skedari tjetër Excel.

    CopySheetAndRename - dublikon aktualin fletë,e riemëron atë siç specifikohet nga përdoruesi dhe e vendos kopjen pas të gjitha fletëve të tjera në librin aktual të punës.

    CopySheetAndRenamePredefined - dublikon fletën aktive, i jep një emër të koduar kopjes dhe e vendos atë në fund të librit aktual të punës.

    CopySheetAndRenameByCell - bën një kopje të fletës aktive dhe e riemërton atë bazuar në vlerën e zgjedhur të qelizës.

    CopySheetAndRenameByCell2 - kopjon fletën aktive dhe e riemërton në bazë të adresës së qelizës së koduar.

    CopySheetToClosedWorkbook - ju lejon të kopjoni fletën në një libër pune të mbyllur.

    CopySheetFromClosedWorkbook - ju mundëson të kopjoni një fletë nga një skedar tjetër Excel pa e hapur atë.

    DuplicateSheetMultipleTimes - ju lejon të kopjoni një fletë në Excel disa herë.

    Për ekzekutoni makro në Excel, thjesht bëni sa më poshtë:

    1. Hapni librin e shkarkuar të punës dhe aktivizoni përmbajtjen nëse ju kërkohet.
    2. Hapni librin tuaj të punës dhe lundroni te fleta që dëshironi kopje.
    3. <1 7>Në fletën tuaj të punës, shtypni Alt + F8 , zgjidhni makron që ju intereson dhe klikoni Run .

    Kështu mund të kopjoni një fletë në Excel me VBA. Ju falënderoj që lexoni dhe shpresoj t'ju shohim në blogun tonë javën e ardhshme!

    Michael Brown është një entuziast i përkushtuar i teknologjisë me një pasion për thjeshtimin e proceseve komplekse duke përdorur mjete softuerike. Me më shumë se një dekadë përvojë në industrinë e teknologjisë, ai ka përmirësuar aftësitë e tij në Microsoft Excel dhe Outlook, si dhe Google Sheets dhe Docs. Blogu i Michael është i përkushtuar ndaj ndarjes së njohurive dhe ekspertizës së tij me të tjerët, duke ofruar këshilla dhe mësime të thjeshta për t'u ndjekur për të përmirësuar produktivitetin dhe efikasitetin. Pavarësisht nëse jeni një profesionist me përvojë apo fillestar, blogu i Michael ofron njohuri të vlefshme dhe këshilla praktike për të përfituar sa më shumë nga këto mjete softuerike thelbësore.