【发布时间】:2014-12-04 14:42:24
【问题描述】:
我正在使用一个公式,该公式将使用索引和匹配来计算一个值,并且输出是从另一个单元格 B2 值中减去。我需要将 B2 保留为所有单元格中的常见减法组件
我在单元格C2中使用以下公式
=IFERROR(B2-(INDEX(raw!$A:$D,MATCH(1,(raw!$A:$A=data!$A2)*(raw!$C:$C=data!C$1),0),4)),"")
但是如果我把这个公式拖到下一个单元格,D2 公式就会变成
=IFERROR(C2-(INDEX(raw!$A:$D,MATCH(1,(raw!$A:$A=data!$A2)*(raw!$C:$C=data!D$1),0),4)),"")
C2 正在替换 B2
我想保持B2 不变
下面是创建的 VBA 宏:
Sub Macro7()
'
' Macro7 Macro
'
Selection.FormulaArray = _
"=IFERROR(RC[-1]-(INDEX(raw!C1:C4,MATCH(1,(raw!C1=data!RC1)*(raw!C3=data!R1C),0),4)),"""")"
Selection.AutoFill Destination:=ActiveCell.Range("A1:D1"), Type:= _
xlFillDefault
ActiveCell.Range("A1:D1").Select
End Sub
如果我手动编辑每个单元格中的公式,它工作正常(将C2,D2,E3,F2 等更改为B2)。但是我在 100 个单元格中使用这个公式,并且手动编辑所有内容实际上是不可能的。无论如何我可以更改 VBA 以使 B2 在整个单元格范围内保持不变以运行此公式?
【问题讨论】:
-
你为什么不用
=IFERROR($B$2-...
标签: vba excel excel-formula