Excel 在vba中重复For循环

Excel 在vba中重复For循环,excel,vba,Excel,Vba,我的代码给出了从2016年到2019年的一系列年份 Max = WorksheetFunction.Max(Workbooks("x.xltm").Worksheets("y").Range("A:A")) nb_year = Max - 2016 last_cell = 2 + nb_year new_y = 0 For Y = 2 To last_cell Workbooks(&quo

我的代码给出了从2016年到2019年的一系列年份

Max = WorksheetFunction.Max(Workbooks("x.xltm").Worksheets("y").Range("A:A"))
nb_year = Max - 2016
last_cell = 2 + nb_year
    new_y = 0
        For Y = 2 To last_cell
            Workbooks("x.xltm").Worksheets("z").Cells(Y, 2) = 2016 + new_y
            new_y = new_y + 1
        Next Y

但我想重复14次,因此我会[2016201720192016..],我想我必须使用Do-While或While,但我真的不知道应该设置什么条件。谢谢。

你想要一个外环和一点数学知识吗

Option Explicit  
Public Sub test()
    Dim max_value As Long, nb_year As Long
    Dim y As Long, last_cell As Long

    max_value = WorksheetFunction.Max(Workbooks("x.xltm").Worksheets("y").Range("A:A"))
    nb_year = max_value - 2016
    last_cell = 2 + nb_year
    
    Dim i As Long
    
    For i = 1 To 14 * (last_cell - 1) Step last_cell - 1
        For y = 2 To last_cell
            ThisWorkbook.Worksheets("z").Cells(y + i - 1, 2) = 2014 + y
        Next y
    Next
 
End Sub

谢谢,什么是
i=1到14*(最后一个单元格-1)步骤最后一个单元格-1
,意思是什么?
i=1到14*(5-1)步骤5-1
,这与
i=1到56步骤4
相同,意味着
i
将进入
1,5,9
等。。。通过循环每次增加4。然后,您的内循环从
y=2循环到y=5,即3次,因此每次通过这两个循环,您将在下一次
5,6,7,8
等时进入
1,2,3,4
。。。。。。。