对于下面的代码,我希望“ x”的值基于Excel中单元格的值(例如2000年和1995年)是可变的。给定这两年,我希望“ x”的值是5 (2000年-1995年)。我尝试了一些不同的方法,但无法使其正常工作。
Dim i As Integer
For i = 1 To 5
rng.Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=R[-1]C/R122C"
Next i
您想要循环的范围的可能性是无止境的。您可以创建变量并执行函数以查找要查找的任何数字。您可以计数,求和等。请注意,变量具有限制(整数与长整数)。在下面的示例中,假设范围包含年份,我创建了一个MinYear
和MaxYear
。如果是日期,则必须找到提取年份的公式。您可以使用结果定义循环,也可以进行数学运算以找到建议的差异。
Sub LoopOnCellValues()
Dim i As Integer
Dim MinYear As Integer
Dim MaxYear As Integer
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
MinYear = WorksheetFunction.Min(ws.Range(ws.Cells(2, 2), ws.Cells(2, 100)))
MaxYear = WorksheetFunction.Max(ws.Range(ws.Cells(2, 2), ws.Cells(2, 100)))
For i = MinYear To MaxYear
'do something
Next i
'or
For i = 1 To (MaxYear - MinYear)
'do something
Next i
End Sub