VBA -kopiark / kopiark til en anden projektmappe

Denne vejledning dækker hvordan man kopierer et ark eller et regneark ved hjælp af VBA.

Kopiér regneark til ny projektmappe

Sådan kopierer du et regneark til en ny projektmappe:

1 Ark ("Ark1"). Kopi

Kopier ActiveSheet til Ny projektmappe

Sådan kopierer du ActiveSheet til en ny projektmappe:

1 ActiveSheet.Copy

Kopier flere ark til ny projektmappe

Sådan kopierer du flere ark til en ny projektmappe:

1 ActiveWindow.SelectedSheets.Copy

Kopier ark inden for samme projektmappe

Vi startede med at vise dig det mest simple eksempler på kopiark: kopiering af ark (er) til en ny projektmappe. Disse eksempler herunder viser dig, hvordan du kopierer et ark i den samme projektmappe. Når du kopierer et ark i en Worbook, skal du angive en placering. For at angive en placering, vil du fortælle VBA at flytte regnearket FØR eller EFTER et andet regneark.

Kopier ark før et andet ark

Her vil vi angive at kopiere og indsætte arket før Sheet2

1 Ark ("Ark1"). Kopi før: = Ark ("Ark2")

Kopier ark før første ark

I stedet for at angive arknavnet kan du også angive arkpositionen. Her kopierer og indsætter vi et ark før det første ark i projektmappen.

1 Ark ("Ark1"). Kopi før: = Ark (1)

Det nyoprettede ark bliver nu det første ark i projektmappen.

Kopier ark efter sidste ark

Brug egenskaben After til at fortælle VBA at indsætte arket efter et andet ark. Her vil vi kopiere og indsætte et ark efter det sidste ark i projektmappen:

1 Ark ("Sheet1"). Kopiér efter: = Sheets (Sheets.Count)

Bemærk, at vi brugte Sheets.Count til at tælle antallet af ark i projektmappen.

Flyt ark

Du kan også flytte et ark i en projektmappe ved hjælp af lignende syntaks. Denne kode flytter Sheet1 til slutningen af ​​projektmappen:

1 Ark ("Sheet1"). Flyt efter: = Sheets (Sheets.Count)

Kopi og navneblad

Efter kopiering og indsættelse af et ark bliver det nyoprettede ark til ActiveSheet. Så for at omdøbe vores nye ark, skal du blot bruge ActiveSheet.Name:

123456 Sub CopySheetRename1 ()Ark ("Sheet1"). Kopiér efter: = Sheets (Sheets.Count)ActiveSheet.Name = "LastSheet"Afslut Sub

Hvis arknavnet allerede findes, genererer ovenstående kode en fejl. I stedet kan vi bruge "On Error Resume Next" til at fortælle VBA at ignorere navngivning af arket og fortsætte med resten af ​​proceduren:

12345678 Sub CopySheetRename2 ()Ark ("Sheet1"). Kopiér efter: = Sheets (Sheets.Count)Ved fejl Genoptag næsteActiveSheet.Name = "LastSheet"Ved fejl GoTo 0Afslut Sub

Eller brug vores RangeExists -funktion til at teste, om arknavnet allerede findes, før du forsøger at kopiere arket:

123456789101112131415161718 Sub CopySheetRename3 ()Hvis RangeExists ("LastSheet") SåMsgBox "Ark findes allerede."AndetArk ("Sheet1"). Kopiér efter: = Sheets (Sheets.Count)ActiveSheet.Name = "LastSheet"Afslut HvisAfslut SubFunction RangeExists (WhatSheet As String, Valgfri ByVal WhatRange As String = "A1") Som boolskDim test As RangeVed fejl Genoptag næsteIndstil test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Ved fejl GoTo 0Afslut funktion

Kopier og navneskema baseret på celleværdi

Du vil måske også kopiere og navngive et ark baseret på en celleværdi. Denne kode navngiver regnearket baseret på celleværdien i A1

12345678 Sub CopySheetRenameFromCell ()Ark ("Sheet1"). Kopiér efter: = Sheets (Sheets.Count)Ved fejl Genoptag næsteActiveSheet.Name = Område ("A1"). VærdiVed fejl GoTo 0Afslut Sub

Kopiér regneark til en anden projektmappe

Indtil videre har vi arbejdet med at kopiere ark i en projektmappe. Nu vil vi dække eksempler til kopiering og indsætning af ark til andre projektmapper. Denne kode vil kopiere et ark til begyndelsen af ​​en anden projektmappe:

1 Ark ("Ark1"). Kopi før: = projektmapper ("eksempel.xlsm"). Ark (1)

Dette kopierer et regneark til slutningen af ​​en anden projektmappe.

1 Ark ("Ark1"). Kopi efter: = projektmapper ("eksempel.xlsm"). Ark (projektmapper ("eksempel.xlsm"). Sheets.Count)

Bemærk, at vi udskiftede 1 med Arbejdsbøger ("Eksempel.xlsm"). Sheets.Count for at få det sidste regneark.

Kopiér regneark til en lukket projektmappe

Du vil måske også kopiere et regneark til en projektmappe, der er lukket. Denne kode åbner en lukket projektmappe, så du kan kopiere et ark ind i den.

123456789 Sub CopySheetToClosedWB ()Application.ScreenUpdating = FalskIndstil closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ artikler \ eksempel.xlsm")Ark ("Ark1"). Kopi før: = lukketBook.Sheets (1)closedBook.Close SaveChanges: = TrueApplication.ScreenUpdating = TrueAfslut Sub

Kopier ark fra en anden projektmappe uden at åbne det

Omvendt vil denne kode kopiere et regneark FRA en lukket projektmappe uden at du behøver at åbne projektmappen manuelt.

123456789 Sub CopySheetFromClosedWB ()Application.ScreenUpdating = FalskIndstil closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ artikler \ eksempel.xlsm")closedBook.Sheets ("Sheet1"). Kopier før: = ThisWorkbook.Sheets (1)closedBook.Close SaveChanges: = FalskApplication.ScreenUpdating = TrueAfslut Sub

Bemærk, at vi i begge disse eksempler deaktiverede ScreenUpdating, så processen kører i baggrunden.

Dupliker Excel -ark flere gange

Du kan også kopiere et Excel -ark flere gange ved hjælp af en Loop.

1234567891011121314 Sub CopySheetMultipleTimes ()Dim n Som heltalDim i As IntegerVed fejl Genoptag næsten = InputBox ("Hvor mange kopier vil du lave?")Hvis n> 0 SåFor i = 1 Til nActiveSheet.Copy After: = ActiveWorkbook.Sheets (Worksheets.Count)NæsteAfslut HvisAfslut Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave