在嵌套循环中创建列变量

时间:2017-08-21 19:15:39

标签: excel-vba vba excel

我在尝试扩展我编写的代码时遇到了问题。我下面粘贴的代码目前正在按预期工作。我遇到的问题是我正试图制作" P2"细胞变量。基本上,我试图将循环中的(" K"& i)单元格与我工作表上P2到AA2范围内的所有日期进行比较。然后,如果月份和年份匹配,请将数据粘贴到匹配的相应列中。我已经尝试用另一个整数替换列引用P,但无法使嵌套循环正常运行。是否有不同的方法将列建立为变量?谢谢你的帮助。

Sub Test()
Dim i As Integer

Sheets("Sheet1").Select

For i = 3 To 6

    If Month(Range("K" & i)) = Month(Range("P2")) And Year(Range("K" & i)) = Year(Range("P2")) And Range("J" & i).Value > "0" Then

       Range("J" & i).Copy
       Range("P" & i).PasteSpecial xlPasteValues

    End If

Next i


End Sub

1 个答案:

答案 0 :(得分:1)

只需循环遍历现有循环中的第16列到第27列:

Sub Test()
Dim i As Integer

Sheets("Sheet1").Select

For i = 3 To 6
    'loop columns p through aa
    For k = 16 to 27

        'Instead of Range() we are using Cell() to refer to the column variabl-y... Cells(<rownum>,<columnnum>)
        If Month(Range("K" & i)) = Month(Cells(2,k)) And Year(Range("K" & i)) = Year(Cells(2,k)) And Range("J" & i).Value > "0" Then

           Range("J" & i).Copy
           Cells(i,k).PasteSpecial xlPasteValues

        End If
    Next k

Next i


End Sub