在for-next循环中选择单独的行

时间:2017-06-11 08:04:17

标签: vba excel-vba excel

我正在尝试进行For-Next循环, 在开始时,我将选择第1行和第2行,然后是第1行和第3行,然后第1行和第4行......等等 我试过以下但是excel会对待我的"我"作为列i而不是行号。如何解决这个问题?

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 个答案:

答案 0 :(得分: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

答案 1 :(得分: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范围,您可以直接在完全限定的范围内使用副本。