具有动态单元格引用的公式
Posted
技术标签:
【中文标题】具有动态单元格引用的公式【英文标题】:Formula with dynamic cell reference 【发布时间】:2017-07-06 11:05:24 【问题描述】:我有一个 S1 单元格引用的以下公式,它随着公式在整个范围内执行而增加,例如S2,S3,S4。
=INDEX(Range1,((ROW(S1)-1)*Range1=2+ROW(S1)),1,MATCH(1,(Range3=Fixed_Period)*(Range4=Mortgage_InitialRate),0))
我使用这个 sn-p 代码将上述公式应用于动态范围内的每个单元格,但是,由于 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
【问题讨论】:
另外,((ROW(S1)-1)*Range1=2+ROW(S1))
,您是按布尔值索引的吗?您的公式中似乎存在语法错误。
【参考方案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
【讨论】:
以上是关于具有动态单元格引用的公式的主要内容,如果未能解决你的问题,请参考以下文章