Hvernig á að afrita blað í Excel með VBA

  • Deildu Þessu
Michael Brown

Kennsluforritið býður upp á safn fjölva til að afrita blöð í Excel: afrita og endurnefna út frá hólfagildi, afrita mörg blöð, afrita virkt vinnublað í aðra skrá án þess að opna það og fleira.

Að afrita blöð handvirkt í Excel er frekar fljótlegt og einfalt... ef það er gert bara einu sinni eða tvisvar. Að afrita mörg blöð mörgum sinnum er leiðinlegt og tímafrekt. Á þessari síðu finnur þú handfylli af gagnlegum fjölvi til að gera þetta verkefni sjálfvirkt.

    Excel VBA til að afrita blað í nýja vinnubók

    Þetta einfaldasta einlínu fjölva gerir nákvæmlega það sem nafnið gefur til kynna - afritar virka blaðið í nýja vinnubók.

    Public Sub CopySheetToNewWorkbook() activeSheet.Copy End Sub

    Afritar mörg blöð í Excel með VBA

    Ef þú vilt afritaðu nokkur blöð úr virku vinnubókinni yfir í nýja, veldu öll áhugaverð vinnublöð og keyrðu þetta fjölvi:

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

    Excel VBA til að afrita blað í aðra vinnubók

    Það fer eftir því hvar þú vilt setja afritaða blaðið inn, notaðu eitt af eftirfarandi fjölvi.

    Afrita blað í byrjun annarrar vinnubókar

    Þessi fjölvi afritar virka blaðið fyrir öll önnur vinnublöð í áfangaskránni, Bók1 í þessu dæmi. Til að afrita í aðra skrá, skiptu "Book1.xlsx" út fyrir fullt nafn markvinnubókarinnar.

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

    Afrita blað í lok annarrar vinnubókar

    Þessi stykki af kóða afritar virka vinnublaðið og setur afritið í lok Bókar1 . Aftur, vinsamlega mundu að skipta út "Book1.xlsx" fyrir nafn áfangavinnubókarinnar þinnar.

    Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx " ).Worksheets.Count) End Sub

    Athugið. Til þess að fjölva virki verður markvinnubókin að vera vistuð á harða disknum þínum eða netinu.

    Afrita blað í valda vinnubók

    Til að geta afritað núverandi blað í hvaða opna vinnubók sem er, þú getur búið til UserForm (sem heitir UserForm1 ) með ListBox stjórn ( heitir ListBox1 ) og tveimur hnöppum:

    Næst, tvísmelltu á eyðublaðið og límdu kóðann hér að neðan í kóðaglugganum:

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every 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 End Sub

    Með UserForm á sínum stað geturðu notað eitt af eftirfarandi fjölvi til að afritavirkt blað í vinnubókina sem þú velur.

    Afrita blað í byrjun valda vinnubókar :

    Public Sub CopySheetToBeginningAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook " " ) Síðan activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Unload UserForm1 End Sub

    Afrita blað í enda valda vinnubókar :

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

    Þegar keyrt er í Excel mun fjölvi sýna þér lista yfir allar opnaðar vinnubækur. Þú velur það sem þarf og smellir á OK:

    Excel fjölvi til að afrita blað og endurnefna

    Þegar þú afritar blað í Excel, er eftirmyndin gefin nafn á sjálfgefnu sniði eins og Sheet1 (2) . Eftirfarandi fjölvi geta hlíft þér við því að breyta sjálfgefna nafninu handvirkt.

    Þessi kóði afritar virka vinnublaðið, nefnir afritið sem "Prufublað" (þér er frjálst að skipta því út fyrir hvaða nafn sem þú vilt) , og setur afritaða blaðið í lok núverandi vinnubókar.

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

    Til að leyfa notandanum að tilgreina nafnið fyrir afritaða blaðið , notaðu þennan kóða:

    Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( "Sláðu inn nafnið fyrir afritaða vinnublaðið" ) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End Sub

    Við keyrslu birtist fjölvi sýnir eftirfarandi innsláttarreit, þar sem þú slærð inn nafnið sem þú vilt og ýtir á OK:

    Excel fjölvi til að afrita blað og endurnefna byggt á hólfigildi

    Í í sumum tilfellum gæti verið þægilegra að nefna afrit með tilteknu hólfigildi, til dæmis dálkhaus. Til þess tekurðu einfaldlega kóðann hér að ofan og gefur sjálfkrafa gildi valda reitsins í inntaksreitinn. Eins og með fyrra dæmið verður afritið sett aftast í virku vinnubókinni.

    Það erfiðasta væri að láta notendur alltaf velja réttan reit áður en þeir keyra fjölvi :)

    Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next newName = InputBox( "Sláðu inn nafnið fyrir afritaða vinnublaðið" , "Copy workheet" , ActiveCell.Value) If newName "" Þá activeSheet. Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End Sub

    Að öðrum kosti geturðu hardkóða heimilisfangið áreiturinn sem afritið á að heita með, reit A1 í kóðanum hér að neðan. Til að nefna afritaða vinnublaðið byggt á öðru reit, skiptu A1 út fyrir viðeigandi reittilvísun.

    Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = 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 Sub

    Macro til að afrita vinnublað í lokaða vinnubók

    Þessi fjölvi afritar virka blaðið í lok lokaðrar vinnubókar. Nafn annarrar vinnubókar er ekki tilgreint í kóðanum - fjölvi opnar venjulega Windows Explorer gluggann og gerir þér kleift að velja hvaða áfangaskrá sem er:

    Eftir að þú hefur valið skrána og smelltu á Opna , fjölvi afritar virka blaðið og lokar markvinnubókinni sjálfkrafa.

    Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Skrár (*.xlsx), *.xlsx“ ) Ef fileName False Then Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closedBook = Vinnubækur. Open (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closedBook. Close ( True ) Application.ScreenUpdating = True End If End Sub

    Excel VBA til að afrita blað úr annarri vinnubók ánopnun

    Þessi fjölvi gerir þér kleift að afrita vinnublað úr annarri Excel skrá án þess að opna hana. Afritaða blaðið verður sett inn í lok núverandi vinnubókar.

    Mundu bara að skipta um nokkrar í kóðanum:

    • C:\Users\XXX\Documents\ Target_Book.xlsx ætti að breyta í raunverulega slóð og nafn vinnubókarinnar sem þú vilt afrita blað úr.
    • Sheet1 ætti að skipta út fyrir nafn blaðsins sem þú vilt afrita.
    Public Sub CopySheetFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = False Set sourceBook = Workbooks. Opnaðu ( "C:\Users\XXX\Documents\Target_Book.xlsx") sourceBook.Sheets( "Sheet1" ).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook. Close Application.ScreenUpdating = True End Sub

    Excel VBA til að afrita blað margfalt

    Stundum gætir þú þurft að afrita sama blaðið oftar en einu sinni, til dæmis til að prófa mismunandi formúlur á sama gagnasettinu. Þetta er auðvelt að gera með eftirfarandi fjölvi.

    Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Resume Next n = InputBox( "Hversu mörg afrit af virka blaðinu viltu gera?" ) Ef n > = 1 Þá Fyrir numtimes = 1 Til n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End If End Sub

    Opnaðu upprunalega blaðið, keyrðu fjölvi, tilgreindu hversu mörg afrit af virka blaðinuþú vilt gera, og smelltu á OK :

    Hvernig á að afrita blöð í Excel með VBA

    Til að afrita blað í Excel með einu af ofangreindum fjölvi geturðu annað hvort sett inn VBA kóðann í þína eigin bók eða keyrt fjölva úr sýnishornsvinnubókinni okkar.

    Hvernig á að bæta fjölvi við vinnubókina þína

    Til að setja inn kóða í vinnubókinni þinni skaltu framkvæma þessi skref:

    1. Opnaðu vinnublaðið sem þú vilt afrita.
    2. Ýttu á Alt + F11 til að opna Visual Basic Editor.
    3. On vinstri glugganum, hægrismelltu á ThisWorkbook og smelltu síðan á Insert > Module .
    4. Límdu kóðann í kóðagluggann.
    5. Ýttu á F5 til að keyra fjölvi.

    Fyrir nákvæmar skref-fyrir-skref leiðbeiningar, vinsamlegast sjáðu Hvernig á að setja inn VBA kóða í Excel.

    Hvernig á að keyra fjölvi úr sýnishornsvinnubókinni okkar

    Að öðrum kosti geturðu hlaðið niður sýnishornsvinnubókinni okkar í afrit Excel blöð og keyrt kóðann þaðan.

    Dæmivinnubókin inniheldur eftirfarandi fjölva:

    CopySheetToNewWorkbook - afritar cu leigja vinnublað í nýja vinnubók.

    CopySelectedSheets - afritar mörg blöð sem þú velur í nýja vinnubók.

    CopySheetToBeginningAnotherWorkbook - afritar virka blaðið í byrjun annarrar vinnubókar.

    CopySheetToEndAnotherWorkbook - afritar virka blaðið í lok annarrar Excel skráar.

    CopySheetAndRename - afritar núverandi blað,endurnefnir það eins og tilgreint er af notandanum og setur afritið á eftir öllum öðrum blöðum í núverandi vinnubók.

    CopySheetAndRenamePredefined - afritar virka blaðið, gefur afritinu harðkóða nafn og setur það í lok núverandi vinnubókar.

    CopySheetAndRenameByCell - gerir afrit af virka blaðinu og endurnefnir það miðað við valið hólfsgildi.

    CopySheetAndRenameByCell2 - afritar virka blaðið og endurnefnir það byggt á harðkóðaða hólfsfanginu.

    CopySheetToClosedWorkbook - gerir þér kleift að afrita blað í lokaða vinnubók.

    CopySheetFromClosedWorkbook - gerir þér kleift að afrita blað úr annarri Excel skrá án þess að opna hana.

    DuplicateSheetMultipleTimes - gerir þér kleift að afrita blað í Excel mörgum sinnum.

    Til að keyrðu makróið í Excel, gerðu bara eftirfarandi:

    1. Opnaðu niðurhalaða vinnubók og virkjaðu efnið ef beðið er um það.
    2. Opnaðu þína eigin vinnubók og farðu að blaðinu sem þú vilt afrit.
    3. <1 7>Í vinnublaðinu þínu, ýttu á Alt + F8 , veldu fjölva sem þú vilt og smelltu á Run .

    Þannig geturðu afritað blað í Excel með VBA. Ég þakka þér fyrir lesturinn og vonast til að sjá þig á blogginu okkar í næstu viku!

    Michael Brown er hollur tækniáhugamaður með ástríðu fyrir því að einfalda flókna ferla með hugbúnaðarverkfærum. Með meira en áratug af reynslu í tækniiðnaðinum hefur hann aukið færni sína í Microsoft Excel og Outlook, sem og Google Sheets og Docs. Blogg Michael er tileinkað því að deila þekkingu sinni og sérfræðiþekkingu með öðrum, veita auðveld ráð og leiðbeiningar til að bæta framleiðni og skilvirkni. Hvort sem þú ert vanur fagmaður eða byrjandi, þá býður blogg Michaels upp á dýrmæta innsýn og hagnýt ráð til að fá sem mest út úr þessum nauðsynlegu hugbúnaðarverkfærum.