Tabl cynnwys
Mae'r tiwtorial yn darparu casgliad o facros i ddyblygu dalennau yn Excel: copïo ac ailenwi yn seiliedig ar werth celloedd, copïo taflenni lluosog, copïo taflen waith weithredol i ffeil arall heb ei hagor, a mwy. <3
Mae copïo taflenni â llaw yn Excel yn eithaf cyflym a syml... os caiff ei wneud unwaith neu ddwy yn unig. Mae dyblygu taflenni lluosog sawl gwaith yn ddiflas ac yn cymryd llawer o amser. Ar y dudalen hon, fe welwch lond llaw o facros defnyddiol i awtomeiddio'r dasg hon.
Excel VBA i gopïo dalen i lyfr gwaith newydd
Mae'r macro un-llinell symlaf hwn yn gwneud hynny. yn union beth mae'r enw'n ei awgrymu - copïwch y ddalen weithredol i lyfr gwaith newydd.
Is-copi cyhoeddus i lyfr gwaith newydd() activeSheet.Copy End SubCopïwch dudalennau lluosog yn Excel gyda VBA
Os hoffech chi wneud hynny copïwch sawl dalen o'r llyfr gwaith gweithredol i un newydd, dewiswch yr holl daflenni gwaith o ddiddordeb a rhedwch y macro hwn:
Is-GopiSelectedSheets() Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End SubExcel VBA i gopïo taflen i lyfr gwaith arall
Yn dibynnu ar ble rydych am fewnosod y ddalen wedi'i chopïo, defnyddiwch un o'r macros canlynol.
Copïwch y ddalen i ddechrau llyfr gwaith arall
Mae'r macro hwn yn copïo'r ddalen weithredol o'r blaen pob taflen waith arall yn y ffeil cyrchfan, Llyfr1 yn yr enghraifft hon. I gopïo i ffeil arall, rhowch enw llawn eich llyfr gwaith targed yn lle "Book1.xlsx".
Public SubCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Llyfrau Gwaith("Llyfr1.xlsx") ).Taflenni(1) Diwedd IsCopïo dalen i ddiwedd llyfr gwaith arall
Mae'r darn hwn o god yn dyblygu'r daflen waith weithredol a yn gosod y copi ar ddiwedd Llyfr 1 . Unwaith eto, cofiwch amnewid "Book1.xlsx" gydag enw eich llyfr gwaith cyrchfan.
Is-GopiSheetToEndAnotherWorkbook() activeSheet.Copy After:=Llyfrau Gwaith( "Book1.xlsx") ).Sheets(Llyfrau Gwaith( "Book1.xlsx " ).sheets.Count) Diwedd IsNodyn. Er mwyn i'r macros weithio, rhaid cadw'r llyfr gwaith targed ar eich gyriant caled neu rwydwaith.
Copïo dalen i lyfr gwaith dethol
Er mwyn gallu copïo'r ddalen gyfredol i unrhyw lyfr gwaith agored, gallwch greu Ffurflen Defnyddiwr (o'r enw UserForm1 ) gyda rheolydd ListBox ( o'r enw ListBox1 ) a dau fotwm:
<3
Nesaf, dwbl-gliciwch y ffurflen a gludwch y cod isod yn y ffenestr Cod:
Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Diwedd Nesaf Is-breifat Is-orchymynButton1_Click() If ListBox1.ListIndex > -1 Yna SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) Diwedd Os Me.Hide Diwedd Is Breifat Is-GorchymynButton2_Click() SelectedWorkbook = "" Me.Hide End SubGyda'r UserForm yn ei le, gallwch ddefnyddio un o'r canlynol macros i gopïo'rdalen weithredol i'r llyfr gwaith o'ch dewis.
Copïwch y ddalen i dechrau'r llyfr gwaith a ddewiswyd :
Copïwch y ddalen i diwedd y llyfr gwaith a ddewiswyd :
Public Sub CopySheetToEndAnotherWorkbook() Llwytho UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook"" ) Yna activeSheet.Copy After:=Llyfrau Gwaith(_ UserForm1.SelectedWorkbook). Sheets( _ Llyfrau Gwaith(UserForm1.SelectedWorkbook). _ Worksheets.Count1 Diwedd IsPan gaiff ei redeg yn Excel, bydd y macro yn dangos rhestr i chi o'r holl lyfrau gwaith sydd wedi'u hagor ar hyn o bryd. Rydych chi'n dewis yr un sydd ei angen ac yn clicio OK:
Excel macro i gopïo'r ddalen ac ailenwi'r ddalen
Pan fyddwch chi'n copïo dalen yn Excel, rhoddir y replica enw yn y fformat rhagosodedig fel Taflen 1 (2) . Gall y macros canlynol arbed y drafferth o newid yr enw rhagosodedig â llaw.
Mae'r cod hwn yn dyblygu'r daflen waith weithredol, gan enwi'r copi fel "Taflen Brawf" (rydych yn rhydd i roi unrhyw enw arall yn ei le) , ac yn gosod y ddalen a gopïwyd ar ddiwedd y llyfr gwaith cyfredol.
Is-copi CyhoeddusAndRenamePredefined() activeSheet.Copy After:=Taflenni Gwaith(Sheets.Count) Ar Gwall Resume Next activeSheet.Name ="Taflen Brawf" Diwedd IsI ganiatáu i'r defnyddiwr nodi enw'r ddalen a gopïwyd , defnyddiwch y cod hwn:
Is-gopi Taflen GyhoeddusAndRename() Dim newName Fel Llinyn Ar Gwall Ail-ddechrau NextName = InputBox( "Rhowch yr enw ar gyfer y daflen waith a gopïwyd") Os newName "" Yna activeSheet.Copy After:=Taflenni Gwaith(Sheets.Count) Ar Gwall Ail-ddechrau Nesaf activeSheet.Name = newName Diwedd Os Diwedd IsAr ôl rhedeg, mae'r macro yn dangos y blwch mewnbwn canlynol, lle rydych chi'n teipio'r enw dymunol ac yn pwyso OK:
Excel macro i gopïo'r ddalen a'i ailenwi yn seiliedig ar werth cell
Yn rhai sefyllfaoedd, gall fod yn fwy cyfleus i enwi copi gyda gwerth cell penodol, er enghraifft, pennawd colofn. Ar gyfer hyn, rydych yn syml yn cymryd y cod uchod ac yn cyflenwi gwerth y gell a ddewiswyd ar hyn o bryd i'r blwch mewnbwn yn awtomatig. Fel gyda'r enghraifft flaenorol, bydd y copi yn cael ei roi ar ddiwedd y llyfr gwaith gweithredol.
Y rhan anoddaf fyddai i'ch defnyddwyr bob amser ddewis y gell gywir cyn rhedeg y macro :)
Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Ail-ddechrau Nesaf newName = InputBox( "Rhowch enw'r daflen waith a gopïwyd", , "Copi taflen waith", ActiveCell.Value) If newName" "" Yna activeSheet. Copy After:=Taflenni Gwaith(Sheets.Count) Ar Gwall Ail-ddechrau Nesaf activeSheet.Name = Diwedd newName Os Diwedd IsFel arall, gallwch godio'r cyfeiriad caledy gell y dylid ei defnyddio i enwi'r copi, cell A1 yn y cod isod. I enwi'r daflen waith a gopïwyd yn seiliedig ar gell arall, rhowch gyfeirnod cell priodol yn lle A1.
Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Taflenni Gwaith(Sheets.Count) If wks.Range ( "A1") ).Gwerth" " Yna Ymlaen Gwall Ail-ddechrau Nesaf activeSheet.Name = wks.Range( "A1") ). Gwerth Diwedd Os wks.Activate Diwedd IsMacro i gopïo taflen waith i lyfr gwaith caeedig
0> Mae'r macro hwn yn copïo'r ddalen weithredol i ddiwedd llyfr gwaith caeedig. Nid yw enw llyfr gwaith arall wedi'i nodi yn y cod - bydd y macro yn agor ffenestr safonol Windows Explorer ac yn caniatáu ichi ddewis unrhyw ffeil cyrchfan:
Ar ôl i chi ddewis y ffeil a chliciwch Agored , bydd y macro yn copïo'r ddalen weithredol ac yn cau'r llyfr gwaith targed yn awtomatig.
Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Ffeiliau (*.xlsx), *.xlsx") Os ffeilName Gau Yna Application.ScreenUpdating = Gau Gosod currentSheet = Application.activeSheet Set closedBook = Llyfrau Gwaith. Agor (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closedBook. Cau ( Gwir ) Application.ScreenUpdating = Diwedd Gwir Os Diwedd IsExcel VBA i gopïo dalen o lyfr gwaith arall hebddoagor
Mae'r macro hwn yn eich galluogi i gopïo taflen waith o ffeil Excel arall heb ei hagor. Bydd y ddalen sydd wedi'i chopïo'n cael ei mewnosod ar ddiwedd y llyfr gwaith cyfredol.
Cofiwch wneud un neu ddau o bethau newydd yn y cod:
- C:\Users\XXX\Documents\ Dylid newid Target_Book.xlsx i'r union lwybr ac enw'r llyfr gwaith yr ydych am gopïo dalen ohono.
- Dylid rhoi enw'r ddalen yr ydych am ei chopïo yn lle dalen 1.
Excel VBA i ddyblygu dalen sawl gwaith
Weithiau, efallai y bydd angen i chi ddyblygu'r un ddalen fwy nag unwaith, er enghraifft i brofi fformiwlâu gwahanol ar yr un set ddata. Gellir gwneud hyn yn hawdd gyda'r macro canlynol.
Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Ail-ddechrau Nesaf n = InputBox( "Sawl copi o'r ddalen weithredol ydych chi am wneud?" ) Os n > = 1 Yna Am numtimes = 1 I n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Diwedd Nesaf Os Diwedd IsAgorwch y ddalen wreiddiol, rhedwch y macro, nodwch sawl copi o'r ddalen weithredolrydych chi am ei wneud, a chliciwch Iawn :
2>Sut i ddyblygu dalennau yn Excel gyda VBA
I gopïo dalen yn Excel gydag un o'r macros uchod, gallwch naill ai fewnosod y cod VBA yn eich llyfr eich hun neu redeg macro o'n gweithlyfr enghreifftiol.
Sut i ychwanegu macro at eich llyfr gwaith
I fewnosod y cod yn eich llyfr gwaith, perfformiwch y camau hyn:
- Agorwch y daflen waith rydych chi am ei chopïo.
- Pwyswch Alt + F11 i agor y Golygydd Sylfaenol Gweledol.
- Ar y cwarel chwith, de-gliciwch Y Llyfr Gwaith Hwn , ac yna cliciwch Mewnosod > Modiwl .
- Gludwch y cod yn ffenestr y Cod.
- Pwyswch F5 i redeg y macro.
Am y cyfarwyddiadau cam wrth gam manwl, gweler Sut i fewnosod cod VBA yn Excel.
Sut i redeg macro o'n llyfr gwaith sampl
Fel arall, gallwch lawrlwytho ein llyfr gwaith sampl i Duplicate Excel Sheets a rhedeg y cod oddi yno.
Mae'r llyfr gwaith sampl yn cynnwys y macros canlynol:
<0 CopiTaflenI'r Llyfr Gwaith Newydd - copïwch y cu rrent taflen waith i lyfr gwaith newydd.CopySelectedsheets - copïo dalennau lluosog a ddewiswch i lyfr gwaith newydd.
CopiTaflenI Ddechrau LlyfrGwaith Arall - copïwch y ddalen weithredol i ddechrau llyfr gwaith arall.
CopiTaflenToDiwedd Llyfr Gwaith arall - copïwch y ddalen weithredol i ddiwedd ffeil Excel arall.
CopySheetAndRename - yn dyblygu'r presennol cynfas,yn ei ailenwi fel y nodir gan y defnyddiwr, ac yn rhoi'r copi ar ôl pob tudalen arall yn y llyfr gwaith cyfredol.
CopySheetAndRenamePredefined - yn dyblygu'r ddalen weithredol, yn rhoi enw cod caled i'r copi ac yn ei osod ar ddiwedd y llyfr gwaith cyfredol.
CopySheetAndRenameByCell - gwneud copi o'r ddalen weithredol a'i hailenwi ar sail gwerth y gell a ddewiswyd.
CopySheetAndRenameByCell2 - copïwch y ddalen weithredol a'i hail-enwi yn seiliedig ar y cyfeiriad cell cod caled.
CopySheetToClosedWorkbook - yn eich galluogi i gopïo dalen i lyfr gwaith caeedig.
CopySheetFromClosedWorkbook - yn eich galluogi i gopïo dalen o ffeil Excel arall heb ei hagor.
DuplicateSheetMultipleTimes - yn gadael i chi ddyblygu dalen yn Excel sawl gwaith.
I rhedeg y macro yn eich Excel, gwnewch y canlynol:
- Agorwch y llyfr gwaith sydd wedi'i lawrlwytho a galluogi'r cynnwys os gofynnir i chi.
- Agorwch eich llyfr gwaith eich hun a llywio i'r ddalen rydych chi am ei copi. <1 7>Yn eich taflen waith, pwyswch Alt + F8 , dewiswch y macro o ddiddordeb, a chliciwch Rhedeg .
Dyna sut y gallwch chi ddyblygu taflen yn Excel gyda VBA. Diolch i chi am ddarllen a gobeithio gweld chi ar ein blog wythnos nesaf!