首页 文章

带动态单元格引用的公式

提问于
浏览
0

我有以下公式,其中S1单元格引用随着在整个范围内执行公式而递增,例如, S2,S3,S4 .

=INDEX(Range1,((ROW(S1)-1)*Range1=2+ROW(S1)),1,MATCH(1,(Range3=Fixed_Period)*(Range4=Mortgage_InitialRate),0))

我使用这段代码将上述公式应用于动态范围内的每个单元格,但是,由于S1不通过这种方法递增,因此每个单元格的结果是相同的 . 因此,如何确保S1增加每个新行到S2,S3,S4等 .

Sub Formula()
Dim FLrange As Range
Set FLrange = Range("Range10")

For Each cell In FLrange
cell.Offset(0, 5).FormulaArray = "=INDEX(Range1,((ROW(S1)-1)*Range1=2+ROW(S1)),1,MATCH(1,(Range3=Fixed_Period)*(Range4=Mortgage_InitialRate),0))"

Next cell
End Sub

1 回答

  • 1

    为每个循环迭代增加一个整数变量(比如'num')并使用“S”&num而不是“S1”

    Sub Formula()
      Dim FLrange As Range
      Set FLrange = Range("Range10")
      Dim num As Integer
      num=1
      For Each cell In FLrange
        cell.Offset(0, 5).FormulaArray = "=INDEX(Range1,((ROW(S" & num & ")-1)*Range1=2+ROW(S" & num & ")),1,MATCH(1,(Range3=Fixed_Period)*(Range4=Mortgage_InitialRate),0))"
        num=num+1
      Next cell
    End Sub
    

相关问题