VBA Excel-以3列为一组循环输出结果

VBA Excel-以3列为一组循环输出结果,excel,vba,Excel,Vba,我有一个sub,它进行类似的计算: Sub loop_it() For k = 1 to 3 For j=1 to 100 a = 1*k b = k+j c = j*j ' Currently, this will overwrite the columns with pattern 2-4, 3-5, 4-6, but I want ' 2nd-4t

我有一个sub,它进行类似的计算:

Sub loop_it()
    For k = 1 to 3
        For j=1 to 100
            a = 1*k
            b = k+j
            c = j*j
            ' Currently, this will overwrite the columns with pattern 2-4, 3-5, 4-6, but I want
            ' 2nd-4th columns(k=1), then 5-7 (k=2), then 8-10 (k=3)
            ThisWorkbook.Sheets("sheet1").Cells(j, k + 1).Value = a
            ThisWorkbook.Sheets("sheet1").Cells(j, k + 2).Value = b
            ThisWorkbook.Sheets("sheet1").Cells(j, k + 3).Value = c
        Next j
    Next k
End Sub
如代码中所述,我当前的方法将以逐步方式输出到列。我试图在k=1时打印到第一组3列,然后在k=2时打印到下一组3列,以此类推


如何使用k在正确的位置输出?我是否应该在结尾处提前k并使用range.offset?

您可以使用
步骤
功能来执行..下一步
循环:

   For k = 1 To 7 Step 3
k
现在取值1、4和7

但现在这些说法是错误的:

 a = 1*k
 b = k+j
因此,请使用:

 a = (k-1)/3+1
 b = (k-1)/3+1+j
相反

还有另一个变量(比如说
iC
)。现在根据
k
的值将
iC
的值设置为2、5或8。然后您可以将
…单元格(j,k+1).Value
替换为
…单元格(j,iC).Value
…单元格(j,iC).偏移量(,1).Value
…单元格(j,iC).偏移量(,2).Value