- Kopioi laskentataulukko uuteen työkirjaan
- Kopioi useita arkkeja uuteen työkirjaan
- Kopioi taulukko samaan työkirjaan
- Siirrä arkki
- Kopioi ja nimilomake
- Kopioi laskentataulukko toiseen työkirjaan
- Kopioi laskentataulukko suljettuun työkirjaan
- Kopioi taulukko toisesta työkirjasta avaamatta sitä
- Kopioi Excel -taulukko useita kertoja
Tämä opetusohjelma kattaa taulukon tai laskentataulukon kopioinnin VBA: n avulla.
Kopioi laskentataulukko uuteen työkirjaan
Laskentataulukon kopioiminen uuteen työkirjaan:
1 | Sheets ("Sheet1"). Kopio |
Kopioi ActiveSheet uuteen työkirjaan
ActiveSheetin kopioiminen uuteen työkirjaan:
1 | ActiveSheet.Copy |
Kopioi useita arkkeja uuteen työkirjaan
Useiden arkkien kopioiminen uuteen työkirjaan:
1 | ActiveWindow.SelectedSheets.Copy |
Kopioi taulukko samaan työkirjaan
Aloitimme näyttämällä sinulle yksinkertaisimman Sheets -kopiointiesimerkin: Sheetsin kopioiminen uuteen työkirjaan. Nämä alla olevat esimerkit osoittavat, kuinka kopioit taulukon samaan työkirjaan. Kun kopioit taulukon työkirjaan, sinun on määritettävä sijainti. Jos haluat määrittää sijainnin, kehotat VBA: ta siirtämään laskentataulukon ennen tai jälkeen toisen laskentataulukon.
Kopioi arkki ennen toista arkkia
Tässä määritetään taulukon kopioiminen ja liittäminen ennen Sheet2: ta
1 | Sheets ("Sheet1"). Kopioi ennen: = Sheets ("Sheet2") |
Kopioi taulukko ennen ensimmäistä arkkia
Arkin nimen määrittämisen sijaan voit myös määrittää arkin sijainnin. Tässä kopioimme ja liitämme taulukon ennen työkirjan ensimmäistä taulukkoa.
1 | Sheets ("Sheet1"). Kopioi ennen: = Sheets (1) |
Äskettäin luotu taulukko on nyt työkirjan ensimmäinen arkki.
Kopioi taulukko viimeisen arkin jälkeen
Käytä After -ominaisuutta kertoaksesi VBA: lle liittää arkin toisen arkin jälkeen. Kopioimme ja liitämme taulukon työkirjan viimeisen taulukon jälkeen:
1 | Sheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count) |
Huomaa, että käytimme Sheets.Countia laskemaanksesi työkirjan Sheets -määrän.
Siirrä arkki
Voit myös siirtää taulukon työkirjassa samankaltaisen syntaksin avulla. Tämä koodi siirtää taulukon 1 työkirjan loppuun:
1 | Sheets ("Sheet1"). Siirrä jälkeen: = Sheets (Sheets.Count) |
Kopioi ja nimilomake
Arkin kopioimisen ja liittämisen jälkeen uudesta luodusta taulukosta tulee ActiveSheet. Jos haluat nimetä uuden arkin uudelleen, käytä vain ActiveSheet -nimeä.
123456 | Sub CopySheetRename1 ()Sheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count)ActiveSheet.Name = "LastSheet"End Sub |
Jos taulukon nimi on jo olemassa, yllä oleva koodi tuottaa virheen. Sen sijaan voimme käyttää ”On Error Resume Next” -toimintoa kertoaksemme VBA: lle, että se sivuuttaa Sheetin nimeämisen ja jatkaa loput menettelystä:
12345678 | Sub CopySheetRename2 ()Sheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count)Virhe Jatka seuraavaksiActiveSheet.Name = "LastSheet"Virhe GoTo 0End Sub |
Tai käytä RangeExists -toimintoa testataksesi, onko Sheet -nimi jo olemassa, ennen kuin yrität kopioida taulukon:
123456789101112131415161718 | Sub CopySheetRename3 ()Jos RangeExists ("LastSheet") SittenMsgBox "Arkki on jo olemassa."MuuSheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count)ActiveSheet.Name = "LastSheet"Loppu JosEnd SubToimintoalueExists (WhatSheet as String, Optional ByVal WhatRange As String = "A1") BooleanDim -testi alueenaVirhe Jatka seuraavaksiAseta testi = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Virheen numero = 0Virhe GoTo 0Lopeta toiminto |
Kopioi ja nimilomake solun arvon perusteella
Voit myös haluta kopioida ja nimetä taulukon solun arvon perusteella. Tämä koodi nimeää laskentataulukon solun arvon perusteella A1: ssä
12345678 | Sub CopySheetRenameFromCell ()Sheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count)Virhe Jatka seuraavaksiActiveSheet.Name = Alue ("A1"). ArvoVirhe GoTo 0End Sub |
Kopioi laskentataulukko toiseen työkirjaan
Toistaiseksi olemme työskennelleet Sheetsin kopioimisen työkirjan sisällä. Nyt kerromme esimerkkejä Sheetsin kopioimisesta ja liittämisestä muihin työkirjoihin. Tämä koodi kopioi taulukon toisen työkirjan alkuun:
1 | Sheets ("Sheet1"). Copy Before: = Työkirjat ("Example.xlsm"). Sheets (1) |
Tämä kopioi laskentataulukon toisen työkirjan loppuun.
1 | Sheets ("Sheet1"). Copy After: = Työkirjat ("Example.xlsm"). Sheets (Työkirjat ("Example.xlsm"). Sheets.Count) |
Huomaa, että vaihdoimme 1 kanssa Työkirjat ("Esimerkki.xlsm"). Arkit.Luku saadaksesi viimeisen laskentataulukon.
Kopioi laskentataulukko suljettuun työkirjaan
Voit myös haluta kopioida laskentataulukon suljettuun työkirjaan. Tämä koodi avaa suljetun työkirjan, jotta voit kopioida taulukon siihen.
123456789 | Sub CopySheetToClosedWB ()Application.ScreenUpdating = VääräAseta closedBook = Työkirjat.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")Sheets ("Sheet1"). Kopioi ennen: = closedBook.Sheets (1)closedBook.Close SaveChanges: = TottaApplication.ScreenUpdating = TottaEnd Sub |
Kopioi taulukko toisesta työkirjasta avaamatta sitä
Päinvastoin, tämä koodi kopioi laskentataulukon suljetusta työkirjasta ilman, että sinun tarvitsee avata työkirja manuaalisesti.
123456789 | Sub CopySheetFromClosedWB ()Application.ScreenUpdating = VääräAseta closedBook = Työkirjat.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")closedBook.Sheets ("Sheet1"). Kopioi ennen: = ThisWorkbook.Sheets (1)closedBook.Close SaveChanges: = FalseApplication.ScreenUpdating = TottaEnd Sub |
Huomaa, että kummassakin esimerkissä poistimme ScreenUpdating -toiminnon käytöstä, jotta prosessi toimii taustalla.
Kopioi Excel -taulukko useita kertoja
Voit myös kopioida Excel -taulukon useita kertoja silmukan avulla.
1234567891011121314 | Sub CopySheetMultipleTimes ()Dim n kokonaislukunaDim i Kuten kokonaislukuVirhe Jatka seuraavaksin = InputBox ("Kuinka monta kopiota haluat tehdä?")Jos n> 0 SittenSillä i = 1 - nActiveSheet.Copy After: = ActiveWorkbook.Sheets (Worksheets.Count)SeuraavaLoppu JosEnd Sub |