2017-06-11 2 views
0

Ich versuche, eine For-Next-Schleife, am Anfang zu tun, werde ich die Zeile 1 & 2 wählen, Zeile dann 1 & 3, dann 1 & 4 rudern ... etc Ich versuchte folgendes, aber Excel würde mein "i" als Spalte i statt der Zeilennummer behandeln. Wie kann dieses Problem behoben werden?Auswahl separate Zeilen in for-Schleife nächster

Sub test123() 
Dim i As Long 
For i = 2 To 51 
    Range("1:1,i:i").Select 
    Selection.Copy 
'other code 
Next i 
End Sub 

Antwort

2

Sie können nicht Ihre Variable Namen innerhalb eines String einfügen - Sie müssen den Wert der Variablen innerhalb des String statt aufzunehmen.

Sub test123() 
    Dim i As Long 
    For i = 2 To 51 
     Range("1:1," & i & ":" & i).Select 
     Selection.Copy 
     'other code 
    Next i 
End Sub 

Hinweis: Es sollte keine Notwendigkeit, tatsächlich zu Select die Bereiche:

Sub test123() 
    Dim i As Long 
    For i = 2 To 51 
     Range("1:1," & i & ":" & i).Copy 
     'other code 
    Next i 
End Sub 
+0

nette Korrektur am Ende :) –

+0

@Shairado - Ich hätte auch ein 'With ActiveSheet' drumherum legen sollen - aber eine Lektion zu einer Zeit. – YowE3K

+0

Vielen Dank für die Hilfe und den Vorschlag. – Geoffrey

2

Eine weitere alternative Möglichkeit, die Union zu gehen verwendet, zwischen jedem Paar von Rows Sie kopieren möchten:

Option Explicit 

Sub test123() 

Dim i As Long 
For i = 2 To 51 
    Union(Rows(1), Rows(i)).Copy 
    'other code  
Next i 

End Sub 

Hinweis: Es gibt ne Notwendigkeit, Select den Bereich vor dem Kopieren, können Sie direkt die Kopie auf dem voll qualifizierten Bereich verwenden.

+0

Gute Arbeit, die 'Option Explicit' hinzufügt! – YowE3K