Sut i ddyblygu dalen yn Excel gyda VBA

  • Rhannu Hwn
Michael Brown

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 Sub

Copï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 Sub

Excel 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 Is

Copï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 Is

Nodyn. 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 Sub

Gyda'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 :

Is-gopi'r Daflen GyhoeddusToBeginningAnotherWorkbook() Llwytho UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook" " ) Yna activeSheet.Copy Before:=Llyfrau Gwaith(UserForm1.SelectedWorkbook).Taflenni(1) Diwedd Os Dadlwythwch UserForm1 Diwedd Is

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 Is

Pan 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 Is

I 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 Is

Ar ô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 Is

Fel 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 Is

Macro 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 Is

Excel 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.
> Is-copi CyhoeddusFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = Gosod Anghywir sourceBook = Llyfrau Gwaith. Agor ( "C:\Users\XXX\Documents\Target_Book.xlsx") sourceBook.Sheets( "Sheet1") ).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook. Cau Application.ScreenUpdating = Diwedd Gwir Is

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 Is

Agorwch 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:

  1. Agorwch y daflen waith rydych chi am ei chopïo.
  2. Pwyswch Alt + F11 i agor y Golygydd Sylfaenol Gweledol.
  3. Ar y cwarel chwith, de-gliciwch Y Llyfr Gwaith Hwn , ac yna cliciwch Mewnosod > Modiwl .
  4. Gludwch y cod yn ffenestr y Cod.
  5. 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:

  1. Agorwch y llyfr gwaith sydd wedi'i lawrlwytho a galluogi'r cynnwys os gofynnir i chi.
  2. Agorwch eich llyfr gwaith eich hun a llywio i'r ddalen rydych chi am ei copi.
  3. <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!

Mae Michael Brown yn frwd dros dechnoleg ymroddedig ac yn frwd dros symleiddio prosesau cymhleth gan ddefnyddio offer meddalwedd. Gyda mwy na degawd o brofiad yn y diwydiant technoleg, mae wedi hogi ei sgiliau yn Microsoft Excel ac Outlook, yn ogystal â Google Sheets a Docs. Mae blog Michael yn ymroddedig i rannu ei wybodaeth a'i arbenigedd ag eraill, gan ddarparu awgrymiadau a thiwtorialau hawdd eu dilyn ar gyfer gwella cynhyrchiant ac effeithlonrwydd. P'un a ydych chi'n weithiwr proffesiynol profiadol neu'n ddechreuwr, mae blog Michael yn cynnig mewnwelediadau gwerthfawr a chyngor ymarferol ar gyfer cael y gorau o'r offer meddalwedd hanfodol hyn.