Kopiering av regneark i en makro

June 7  by Eliza

Når organisering av data i arbeidsbøker, er det ikke uvanlig å kopiere regneark fra en arbeidsbok til en annen. Faktisk Rediger | Flytt eller Kopier Sheet kommandoen er en som jeg bruker ganske ofte, og jeg ville være villig til å satse på at andre bruker det like ofte.

Hvordan, da, er man å kopiere regneark i en makro? Svaret er å bruke kopieringsmetoden med en individuell regneark eller gruppe av regneark. For eksempel vil følgende makrokoden kopiere den valgte regnearket til en ny arbeidsbok:

ActiveSheet.Copy

Det er det; en enkelt linje er alt som er nødvendig for å kopiere regnearket til en ny, ikke navngitt arbeidsbok. Etter gjennomføring av linjen, er den nye arbeidsboken er valgt, og du kan lagre den med kode som ligner på følgende. Den første linjen i koden lagrer arbeidsboken, og den andre lukker den.

ActiveWorkbook.SaveAs Filename: = "MyNewFile.xlsm", _
Filformatet: = xlOpenXMLWorkbookMacroEnabled
ActiveWindow.Close

Hvis du vil kopiere et bestemt ark til en annen arbeidsbok, gjør du det ved å angi navnet på arket du vil kopiere, i stedet for å bruke Active objekt:

Sheets ("Ark1"). Copy

Dette eksempelet kopierer regneark heter Ark1, fra Ark samling, til en ny arbeidsbok. Du kan deretter lagre den nye arbeidsboken, som allerede diskutert.

Kopi metode, når det brukes med regneark, ikke er begrenset til å kopiere et enkelt ark om gangen. Hvis du har en gruppe av ark valgt, kan du fortsatt bruke en enkelt kommandolinje å kopiere alle av dem til en ny arbeidsbok. Det er det som er gjort i denne makroen:

Sub CopyWorkbook ()
Dim sCopyName As String

sCopyName = "My New Workbook.xlsm"

SelectedSheets.Copy
ActiveWorkbook.SaveAs Filename: = sCopyName, _
Filformatet: = xlOpenXMLWorkbookMacroEnabled
End Sub

Legg merke til bruken av kommandoen Kopier. Makroen vil fungere om du har ett regneark eller femti; det spiller ingen rolle. Hvis du ville, i stedet, kopiere alle regnearkene fra en arbeidsbok til en annen, er alt du trenger å gjøre lage en enkelt endring i makro, til linjen der Kopier metoden startes:

Sheets.Copy

Dette kopierer hele Sheets samling, som består av alle regnearkene i arbeidsboken.

Det bør bemerkes at Kopi metoden er ikke bare for å kopiere regneark til en ny arbeidsbok; det kan også bli brukt til å kopiere regneark i samme arbeidsboken. Det eneste du trenger å gjøre er å angi hvor i gjeldende arbeidsbok du ønsker å gjøre kopien:

ActiveSheet.Copy Etter: = Sheets ("Sheet7")

Denne koden linje kopier det aktive regnearket inn i samme arbeidsbok slik at det vises etter regnearket som heter Sheet7. Hvis det er mer passende for dine behov, kan du i stedet oppgi regnearket før som kopien skal plasseres:

ActiveSheet.Copy før: = Sheets ("Sheet7")

Dette resulterer i regnearket blir plassert før Sheet7 i stedet for etter det.

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (2784) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Kopiere regneark i en makro.