Efnisyfirlit
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 SubAfritar 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 SubExcel 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 SubAfrita 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 SubAthugið. 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 SubMeð 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 SubAfrita 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 SubTil 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 SubVið 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 SubAð öð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.
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 SubExcel 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.
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 SubOpnað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:
- Opnaðu vinnublaðið sem þú vilt afrita.
- Ýttu á Alt + F11 til að opna Visual Basic Editor.
- On vinstri glugganum, hægrismelltu á ThisWorkbook og smelltu síðan á Insert > Module .
- Límdu kóðann í kóðagluggann.
- Ý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:
- Opnaðu niðurhalaða vinnubók og virkjaðu efnið ef beðið er um það.
- Opnaðu þína eigin vinnubók og farðu að blaðinu sem þú vilt afrit. <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!