Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在嵌套循环中生成列变量_Excel_Vba - Fatal编程技术网

Excel 在嵌套循环中生成列变量

Excel 在嵌套循环中生成列变量,excel,vba,Excel,Vba,我在尝试扩展我编写的代码时遇到了问题。我在下面粘贴的代码目前正在按预期工作。我遇到的问题是,我正在尝试创建“P2”单元格变量。本质上,我试图将循环中的(“K”&I)单元格与工作表中P2到AA2范围内的所有日期进行比较。然后,如果月份和年份匹配,则将数据粘贴到匹配的相应列中。我尝试用另一个整数替换列引用P,但无法使嵌套循环正常工作。是否有其他方法将列建立为变量?谢谢你的帮助 Sub Test() Dim i As Integer Sheets("Sheet1").Select For i =

我在尝试扩展我编写的代码时遇到了问题。我在下面粘贴的代码目前正在按预期工作。我遇到的问题是,我正在尝试创建“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

只需在现有循环中循环第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
子测试()
作为整数的Dim i
图纸(“图纸1”)。选择
对于i=3到6
'循环列p到aa
对于k=16到27
'我们使用Cell()来引用variabl-y列,而不是Range()。。。单元格(,)
如果月(范围(“K”和i))=月(单元格(2,K))和年(范围(“K”和i))=年(单元格(2,K))和范围(“J”)和i)。值>0,则
范围(“J”和i)。复制
单元格(i,k).粘贴特殊值
如果结束
下一个k
接下来我
端接头

是否仍应取消注释“如果结束”字段?使用
Application.WorskSheetFunction.Match()
查找正确的列。并使用它的return设置列。LOL
variabl-y
+1