2009-07-28 18 views
0

Ich versuche, VBA-Code zu schreiben, der einen benannten Bereich auswählt, ihn kopiert und für eine bestimmte Anzahl von Zeilen einfügt. Was ich wissen muss, ist, wie man den Bereich der Zellen, die den obigen entsprechen, auswählt.VBA benannter Bereich Offset

z. Ich habe einen Bereich "myRange", der sich bezieht auf: "= $ A $ 1: D $ 1 $, $ F $ 1, $ K $ 1". Ich möchte dies kopieren und in "= $ A $ 2: D $ 2 $, $ F $ 2, $ K $ 2" einfügen, indem ich auf "myRange" anstatt auf die Zeichenfolge der Zellreferenzen verweise.

Irgendwelche Hilfe?

Antwort

1

So ähnlich?

Sub Test() 

    Dim oRange As Range 
    Set oRange = ActiveSheet.Range("A1:D1") ' Change this to point at the range to be copied 

    Dim i As Integer 
    For i = 1 To 10 
     oRange.Copy 
     oRange.Offset(i, 0).PasteSpecial xlPasteAll 
    Next i 

End Sub 

EDIT: OK, so etwas wie dieses dann (mit disjunkten Bereichen gerecht zu werden):

Sub Test() 

    Dim oRange As Range 
    Set oRange = ActiveSheet.Range("A1,C1:D1") ' Change this to point at the range to be copied 

    Dim i As Integer 
    For i = 1 To 10 
     Dim oArea As Range 
     For Each oArea In oRange.Areas 
      oArea.Copy 
      oArea.Offset(i, 0).PasteSpecial xlPasteAll 
     Next oArea 
    Next i 

End Sub 
+0

Geht nicht, ich brauche etwas, das auf Mehrfachauswahl funktioniert wie "= $ A $ 1: D $ 1 $, $ F $ 1, $ K $ 1" – Karl

+0

Aktualisiert, um disjunkte Bereiche zu berücksichtigen. –

+0

Super, funktioniert perfekt, danke – Karl