I denne vejledning lærer du flere forskellige metoder til at kopiere og indsætte og klippe og indsætte ved hjælp af en VBA -makro. Læs den ledsagende vejledning om Value Paste and PasteSpecial for mere avancerede kopierings- og indsætningsmuligheder.
For at bruge denne kode: Åbn Visual Basic Editor (Alt + F11), Indsæt et nyt modul (Indsæt> Modul), og kopier og indsæt den ønskede kode i modulet.
Kopier (klip) og indsæt en enkelt celle
Dette eksempel kopierer eller klipper og indsætter en enkelt celle, A1 over til B1:
123456789 | Sub Paste_OneCell ()'Kopier og indsæt enkelt celleOmråde ("A1"). Kopieringsområde ("B1")'Klip og indsæt enkeltcelleOmråde ("A1"). Skær rækkevidde ("B1")Afslut Sub |
Kopier markering
Hvis du vil kopiere det aktive valg, skal du bruge dette:
123456789101112 | Sub CopySelection ()'Indsæt i et defineret områdeSelection.copy -område ("b1")'Offset Paste (forskyder 2 celler ned og 1 til højreUdvælgelse. KopiUdvælgelse. Forskydning (2,1). IndsætApplication.CutCopyMode = FalskAfslut Sub |
Kopier (klip) og indsæt en række celler
Dette eksempel kopierer eller klipper og indsætter en række celler, A1: A3 over til B1: B3:
123456789 | Sub Paste_Range ()'Kopier og indsæt en række cellerOmråde ("A1: A3"). Kopiområde ("B1: B3")'Klip og indsæt en række cellerOmråde ("A1: A3"). Skæreområde ("B1: B3")Afslut Sub |
Kopier (klip) og indsæt en hel kolonne
Nedenfor vil vi demonstrere et par hurtige eksempler. Læs vores artikel om kopiering og indsætning af rækker og kolonner for detaljerede eksempler, forklaringer og variationer.
Dette eksempel kopierer eller klipper og indsætter en hel kolonne, A over til B:
12345678910 | Sub PasteOneColumn ()'Kopier og indsæt kolonneOmråde ("A: A"). Kopieringsområde ("B: B")'Klip og indsæt kolonneOmråde ("A: A"). Skæreområde ("B: B")Afslut Sub |
Kopier (klip) og indsæt en hel række
Dette eksempel kopierer eller klipper og indsætter en hel række, 1 over til 2:
12345678910 | Sub Paste_OneRow ()'Kopier og indsæt rækkeOmråde ("1: 1"). Kopieringsområde ("2: 2")'Klip og indsæt rækkeOmråde ("1: 1"). Skær rækkevidde ("2: 2")Afslut Sub |
Kopier (klip) og indsæt i et andet regneark eller en projektmappe
1234567891011121314 | Sub Paste_Other_Sheet_or_Book ()'Klip eller kopier og indsæt til et andet regnearkRegneark ("ark1"). Område ("A1"). Kopier regneark ("ark2"). Område ("B1") 'KopiRegneark ("ark1"). Område ("A1"). Klip regneark ("ark2"). Område ("B1") 'Klip'Klip eller kopier og indsæt til en anden projektmappeArbejdsbøger ("bog1.xlsm"). Regneark ("ark1"). Område ("A1"). Kopi _Arbejdsbøger ("book2.xlsm"). Regneark ("ark1"). Område ("B1") 'KopiArbejdsbøger ("book1.xlsm"). Regneark ("ark1"). Område ("A1"). Klip _Arbejdsbøger ("book2.xlsm"). Regneark ("ark1"). Område ("B1") 'KlipApplication.CutCopyMode = FalskAfslut Sub |
Værdi Indsæt
Normalt, når du kopierer og indsætter, indsætter du alle egenskaberne for en celle: formatering, formler osv. … Value Paste giver dig mulighed for at kopiere og indsætte cellers værdier og intet andet. Den nemmeste måde at værdipasta i VBA er at definere cellens værdi direkte:
123456789101112131415 | Sub ValuePaste ()'Værdi Indsæt cellerOmråde ("B1"). Værdi = Område ("A1"). VærdiOmråde ("B1: B3"). Værdi = Område ("A1: A3"). Værdi'Indstil værdier mellem regnearkRegneark ("ark2"). Område ("A1"). Værdi = Regneark ("ark1"). Område ("A1"). Værdi'Indstil værdier mellem arbejdsbøgerArbejdsbøger ("book2.xlsm"). Regneark ("ark1"). Område ("A1"). Værdi = _Arbejdsbøger ("book1.xlsm"). Regneark ("ark1"). Område ("A1"). VærdiApplication.CutCopyMode = FalskAfslut Sub |
Indsæt special
Paste Special giver dig mulighed for at kopiere og indsætte specifikke egenskaber for celler (eksempler: formater, værdier, kolonnebredder osv.). Det giver dig også mulighed for at udføre særlige indsætningsoperationer (eksempler: spring emner over, transponer). Vi vil se på flere eksempler herunder, men for en dybdegående læsning af vores selvstudium om Value Pasting and Paste Special.
12345678910111213141516171819 | Sub PasteSpecial ()'Udfør en speciel indsætning:Område ("A1"). Kopi'Indsæt formaterOmråde ("B1"). PasteSpecial Paste: = xlPasteFormats'Indsæt kolonnebredderOmråde ("B1"). PasteSpecial Paste: = xlPasteColumnWidths'Indsæt formlerOmråde ("B1"). PasteSpecial Paste: = xlPasteFormulas'Udfør flere indsætte specialoperationer på én gang:Område ("A1"). Kopi'Indsæt formater og transponerOmråde ("B1"). PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, SkipBlanks: = _Falsk, Transponere: = SandtApplication.CutCopyMode = FalskAfslut Sub |
Ryd udklipsholder
Efter kopiering og indsætning vil du måske rydde udklipsholderen (det gør vi i nogle af kodeeksemplerne ovenfor). For at rydde Excel -udklipsholderen sætter vi Application.CutCopyMode til Falsk:
1 | Application.CutCopyMode = Falsk |
Dette vil rydde Excel's udklipsholder. Det vil dog ikke rydde Windows Udklipsholder. Følg instruktionerne her for at rydde vinduets udklipsholder.