Avatar billede krummel Juniormester
17. juni 2016 - 14:55 Der er 2 kommentarer

VBA kopier flere enkelt celler

Jeg skal kopier mange enkelt celler over i bestemte celler i en anden fane ved hjælp af VBA. Hvordan gøres det mest effektiv.

Jeg gør således:
    Sheets("et").Range("D6").Copy
    Sheets("to").Range("E10").PasteSpecial Paste:=xlPasteValues
    Sheets("et").Range("D7").Copy
    Sheets("to").Range("H10").PasteSpecial Paste:=xlPasteValues
....osv...


Men det virker ret tungt - kan det gøres mere effektivt og elegant?
Avatar billede Jessen Seniormester
17. juni 2016 - 15:12 #1
Hej,

Ud fra ovenstående eksempel, ser der ikke ud til at være et simpelt system i, hvordan data flyttes fra et ark til et andet (som fx. A1-A10 flyttes til D6-D15). Hertil foreslår jeg, at du bruger to Arrays til at indholde placeringerne. Det første til original placering, og det næste to kopi. Nedenstående forudsætter
1) at alle originalerne findes i arket 'et' og alle kopierne skal placeres i arket 'to'
2) De to arrays skal udfyldes, så de indeholder lige mange celler.

Sub test()

Dim Org() As Variant
Dim Kopi() As Variant
Dim i As Integer

Org = Array("D6", "D7")
Kopi = Array("E10", "H10")

For i = LBound(Org) To UBound(Org)
    Sheets("to").Range(Kopi(i)) = Sheets("et").Range(Org(i))
Next
   
End Sub
Avatar billede Dan Elgaard Ekspert
20. juni 2016 - 10:28 #2
Hvis du blot vil have værdierne (.PasteValues) kan du blot angive disse, f.eks.:

Sheets("to").Range("E10").Value = Sheets("et").Range("D6").Value

Denne linje svarer til dine to første linjer i dit eget eksempel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester