Excel VBA Copy Range til et andet ark (8 nemmeste måder)

  • Del Dette
Hugh West

Når du har brug for det, kan du kopiere et område fra et ark til et andet ark eller en anden projektmappe. Der er forskellige typer af kopiering og indsættelse. Efter denne artikel vil du lære forskellige måder at bruge Excel VBA-kopiere område til et andet ark på.

For at gøre forklaringen levende vil jeg bruge et eksempeldatasæt, der repræsenterer personlige oplysninger om bestemte personer. Datasættet har 4 kolonner. Disse kolonner er kolonnerne Fornavn, Efternavn, Fulde navn, og E-mail .

Download arbejdsbog til træning

VBA Copy Range til et andet ark.xlsm

8 måder at Excel VBA kopiere område til et andet ark på

1. Kopier et område til et andet ark med format

Når du ønsker at Kopier en rækkevidde fra et ark til et andet ark med Format kan du blot gøre det ved at bruge VBA .

Her, jeg vil Kopier en række fra Datasæt ark til WithFormat ark.

Lad os starte proceduren,

Først skal du åbne den Udvikler faneblad>> vælg Visual Basic

Du kan også bruge ALT + F11 tastatur for at åbne VBA redaktør.

Derefter åbnes et nyt vindue med navnet Microsoft Visual Basic for Applications.

Derfra skal du åbne Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_withFormat_ToAnother_Sheet() Range("B1:E10").Copy Worksheets("WithFormat").Range("B1:E10") End Sub 

Her erklærede jeg den Underprocedure Copy_Range_withFormat_ToAnother_Sheet

Jeg har taget rækkevidde B1:E10 for at kopiere fra det eksisterende ark til arknavnet WithFormat .

Her har jeg brugt den Kopier metode til at kopiere det valgte område, Kopier metode kopierer ethvert område med Format .

Endelig, Gem koden og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Copy_Range_withFormat_ToAnother_Sheet også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Den vil derfor Kopier det valgte område med Format til det nye ark, jeg har valgt ( WithFormat) .

2. VBA Kopier et område til et andet ark uden format

Det er også muligt at Kopier et område til et andet ark uden at Format ved at bruge VBA .

Her, jeg vil Kopier en række fra Datasæt ark til WithoutFormat ark.

Lad os begynde proceduren,

Nu skal du åbne den Udvikler faneblad>> vælg Visual Basic ( bruge den ALT + F11)

Dernæst åbner den Microsoft Visual Basic for Applications.

Derefter skal du åbne Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_WithoutFormat_Toanother_Sheet() Range("B1:E10").Copy Sheets("WithoutFormat").Range("B1").PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 

Her erklærede jeg den Underprocedure Kopier_Række_uden_format_til_et_andet_ark

Jeg har taget rækkevidde B1:E10 for at kopiere fra det eksisterende ark til arknavnet WithoutFormat .

Her har jeg brugt den Kopier metode til at kopiere det valgte område, men også nævnt Indsæt:=xlPasteValues i den PasteSpecial metode, så den kun indsætter Værdier for det valgte område, ikke formatet.

Endelig, Gem koden, og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Kopier_Række_uden_format_til_et_andet_ark og også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Den vil således Kopier det valgte område kun med Værdier ingen Format .

3. Kopier et område til et andet ark med format og kolonnebredde

Nogle gange vil du måske Kopier ethvert udvalgt område, som det er, for at du kan Kopier en række med Format og Kolonnebredde .

Her, jeg vil Kopier en række fra Datasæt ark til Format & Kolonnebredde ark.

Hvis du vil se proceduren for at udføre opgaven ved hjælp af VBA ,

Først skal du åbne den Udvikler faneblad>> vælg Visual Basic

Du kan også bruge ALT + F11 tastatur for at åbne VBA redaktør.

Derefter åbnes et nyt vindue med Microsoft Visual Basic for Applications.

Der, åben Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth() Range("B1:E10").Copy Destination:=Sheets("Format & ColumnWidth").Range("B1") Range("B1:E10").Copy Sheets("Format & ColumnWidth").Range("B1").PasteSpecial Paste:=xlPasteColumnWidths, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Her erklærede jeg den Underprocedure Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth

Jeg har taget rækkevidde B1:E10 for at kopiere fra det eksisterende ark til destinationsarkets navn Format & Kolonnebredde .

Her har jeg brugt den Kopier metode til at kopiere det valgte område. Jeg brugte også PasteSpecial metode, hvor jeg nævnte Indsæt:=xlPasteColumnWidths så den indsætter det valgte område sammen med Format og Kolonnebredde .

Endelig, Gem koden, og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth og også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Som følge heraf vil den Kopier det valgte område med Format og Kolonnebredde .

4. VBA Kopier et område til et andet ark med en formel

Hvis du har en formel i dit datasæt, som du ønsker at kopiere, er det ikke noget problem! Du kan kopiere området, der indeholder Formel til et andet ark, hvor formlen forbliver intakt.

Her, jeg vil Kopier en række fra Datasæt ark til MedFormel ark

Lad os begynde proceduren,

Til at begynde med skal du åbne Udvikler faneblad>> vælg Visual Basic ( kan du også bruge ALT + F11 tastatur)

Dernæst åbner den Microsoft Visual Basic for Applications.

Derfra skal du åbne Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_withFormula_ToAnother_Sheet() Range("B1:E10").Copy Sheets("WithFormula").Range("B1").PasteSpecial Paste:=xlPasteFormulas, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Her erklærede jeg den Underprocedure Copy_Range_withFormula_ToAnother_Sheet

Jeg har taget rækkevidde B1:E10 for at kopiere fra det eksisterende ark til destinationsarkets navn MedFormel .

Her har jeg brugt den Kopier metode til at kopiere det valgte område. Jeg brugte også PasteSpecial metode, hvor jeg nævnte Indsæt:=xlPasteFormulas således at den bærer Formler sammen med det valgte område.

Endelig, Gem koden, og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Copy_Range_withFormula_ToAnother_Sheet også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Den vil således Kopier alle de valgte celleområder med Formler .

Lignende læsninger:

  • Sådan bruger du VBA Range Offset (11 måder)
  • VBA for hver celle i området i Excel (3 metoder)
  • Sådan bruges Range Object i VBA i Excel (5 egenskaber)

5. Kopier et område med AutoFit til et andet ark

Mens Kopiering et område til et andet ark, kan du også bruge AutoFit metode i VBA til AutoFit det kopierede område i det nye ark.

Her, jeg vil Kopier en række fra Datasæt ark til AutoFit ark

Lad os starte proceduren,

Først skal du åbne den Udvikler faneblad>> vælg Visual Basic

Du kan også bruge ALT + F11 tastatur for at åbne VBA redaktør.

Derefter åbnes et vindue med Microsoft Visual Basic for Applications.

Derefter skal du åbne Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_withFormat_AutoFit() Sheets("Dataset").Select Range("B1:E10").Copy Sheets("AutoFit").Select Range("B1").Select ActiveSheet.Paste Columns("B:E").AutoFit End Sub 

Her erklærede jeg den Underprocedure Copy_Range_withFormat_AutoFit

Først valgte jeg regnearket Datasæt . derefter taget udvalget B1:E10 for at kopiere fra det eksisterende ark til destinationsarket med navnet AutoFit .

Her har jeg brugt den Kopier metode til at kopiere det valgte område og AutoFit metoden vil autofit de givne kolonner B:E .

Endelig, Gem koden og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Copy_Range_withFormat_AutoFit også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Den vil derfor Kopier det valgte område til et nyt ark og også AutoFit kolonnerne.

6. VBA Kopier et område til en anden projektmappe

Hvis du ønsker det, kan du også Kopier et område fra et ark til et andet ark i en anden projektmappe.

Her, jeg vil Kopier en række fra Datasæt ark til Ark1 Bog1 arbejdsbog.

Lad os starte proceduren,

Først skal du åbne den Udvikler faneblad>> vælg Visual Basic (y Du kan også bruge ALT + F11 tastatur)

Derefter åbner den Microsoft Visual Basic for Applications.

Derefter skal du åbne Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_WithFormat_Toanother_WorkBook() Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset").Range("B3:E10"). _ Copy Workbooks("Book1").Worksheets("Sheet1").Range("B3") End Sub 

Her erklærede jeg den Underprocedure Copy_Range_WithFormat_Toanother_WorkBook

Jeg har taget rækkevidden B3:E10 fra arkets navn Datasæt for at kopiere fra det eksisterende ark til det nye regnearksnavn Bog1 og navn på arket Ark1 .

Her har jeg brugt den Kopier metode til at kopiere det valgte område til den nye projektmappe.

Endelig, Gem koden, og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Copy_Range_WithFormat_Toanother_WorkBook også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Nu vil det Kopier det valgte område fra den Datasæt ark til en anden projektmappe.

7. Kopier et område til den sidste række i et andet ark

Under alle omstændigheder, hvis du ønsker at Kopier et område til et andet ark fra en bestemt celle eller den sidste celle, kan du gøre det ved hjælp af VBA .

Før jeg går ind i proceduren, vil jeg fortælle dig, at jeg har taget to nye ark bestående af Fuldt navn, e-mail, og Adresse .

Lad os observere den Datasæt2 ark først.

Her er den Under sidste celle ark.

Her, jeg vil Kopier en række fra Datasæt2 ark til Under sidste celle men fra den første ikke-tomme celle.

Til at begynde med skal du åbne Udvikler faneblad>> vælg Visual Basic

Dernæst åbner den Microsoft Visual Basic for Applications.

Derefter skal du åbne Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_Below_BelowLastCell_AnotherSheets() Sheets("Dataset2").Select lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Range("A2:C" & lr).Copy Sheets("Below Last Cell").Select lrAnotherSheet = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Cells(lrAnotherSheet + 1, 1).Select ActiveSheet.Paste Columns("A:C").AutoFit EndUnder 

Her erklærede jeg den Underprocedure Copy_Range_BelowLastCell_AnotherSheets

Først valgte jeg arket Datasæt2 og derefter brugt den Række metode til at tælle de Sidste række og beholdt den optællede række i lr .

Derefter tages intervallet A2:C & lr for at kopiere fra det eksisterende ark til destinationsarkets navn Under sidste celle .

Igen, brugt den Række metode til at tælle de Sidste række af et andet ark med navnet Under sidste celle og beholdt den optællede række i lrAnotherSheet .

Her har jeg brugt den Kopier metode til at kopiere det valgte område og AutoFit metoden vil autofitere de angivne kolonner A:C .

Endelig, Gem koden og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Copy_Range_BelowLastCell_AnotherSheets også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Den vil derfor Kopier det valgte område og vil Indsæt det fra den sidste række i et andet ark.

8. VBA Kopier et område til den sidste række i en anden projektmappe

Hvis du ønsker at Kopier et område til den sidste række i et andet regnearksark, kan du også bruge VBA .

Her, jeg vil Kopier en række fra Datasæt2 ark til Ark1 Bog2 men fra den første ikke-tomme celle.

Sådan starter du proceduren,

Først skal du åbne den Udvikler faneblad>> vælg Visual Basic

Du kan også bruge ALT + F11 tastatur for at åbne VBA redaktør.

Derefter åbnes et nyt vindue med Microsoft Visual Basic for Applications.

Derfra skal du åbne Indsæt >> vælg Modul .

A Modul åbnes, og skriv følgende kode i det åbne vindue Modul .

 Sub Copy_Range_Below_BelowLastCell_To_Another_Workbook() Dim wsCopy As Worksheet Dim wsDestination As Worksheet Dim lCopyLastRow As Long Dim lDestLastRow As Long Set wsCopy = Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset2") Set wsDestination = Workbooks("Book2.xlsx").Worksheets("Sheet1") lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row lDestLastRow =wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Offset(1).Row wsCopy.Range("A2:C" & lCopyLastRow).Copy wsDestination.Range("A" & lDestLastRow) End Sub 

Her erklærede jeg den Underprocedure Copy_Range_Below_BelowLastCell_To_Another_Workbook hvor wsCopy og wsDestination er Arbejdsark type, lCopyLastRow og lDestLastRow er Lang type.

For det første, brugte Indstil for at indstille variabler for det ark, der skal kopieres, og destinationsarket.

Dernæst brugte du den Række metode til at finde den sidste række baseret på data i kolonnen A i kopieringsområdet.

Igen, brugt den Række metode til at finde den første tomme række på grundlag af data i kolonnen A i destinationsområdet også anvendt Offset til at flytte ned en ejendom.

Endelig, Kopieret dataene i Datasæt2 ark fra den Excel VBA Kopier område til et andet ark.xlsm arbejdsbog til destinationen Ark1 af arbejdsbogen Bog2.xlsx .

Nu, Gem koden, og gå tilbage til regnearket.

Derefter skal du åbne den Se faneblad>> fra Makroer >> vælg Vis makroer

➤ A dialogboks vil dukke op.

Nu, fra den Makronavn vælge den Copy_Range_Below_BelowLastCell_To_Another_Workbook også vælge arbejdsmappen i Makroer i .

Endelig, Kør den valgte Makro .

Den vil derfor Kopier det valgte område fra det eksisterende ark til den sidste række i en anden projektmappe.

Øvelsesafsnit

Jeg har givet et øvelsesark i arbejdsbogen til at øve disse forklarede måder at bruge Excel på VBA kopiere området til et andet ark.

Konklusion

I denne artikel har jeg forklaret 8 forskellige typer af nemme og hurtige måder at bruge Excel på VBA kopiere område til et andet ark. Disse forskellige måder vil hjælpe dig med at kopiere et område fra et ark til et andet og også fra et ark til en anden projektmappe. Sidst men ikke mindst, hvis du har nogen form for forslag, ideer og feedback, er du velkommen til at kommentere nedenfor.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.