Excel 在vba中重复For循环
我的代码给出了从2016年到2019年的一系列年份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
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
。。。。。。。