2017-06-11 171 views
0

我試圖做一個for-next循環, 之初單獨行,我將選擇行1 & 2,然後排1 & 3,則第1行& 4 ...等 我嘗試了以下,但Excel會把我的「我」作爲列我而不是行號。如何解決這個問題?選擇在for-next循環

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 

回答

2

不能在String中插入你的變量 - 您需要包括的變量String,而不是內部的

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 

注:應該沒有必要實際Select範圍:

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

最後更正:) –

+0

@ShaiRado - 我也應該在其周圍放置一個'With ActiveSheet' - 但每次只有一節課。 – YowE3K

+0

非常感謝您的幫助和建議。 – Geoffrey

2

另一種替代方式去使用Union,要複製每對Rows之間:

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 

備註:複製之前需要對Select範圍進行復制,您可以直接在完全限定範圍內使用該複製。

+0

加入'Option Explicit'的好工作! – YowE3K