vba - Excel VBA 推荐

标签 vba excel excel-formula

我正在使用一个公式,它将使用索引和匹配来计算一个值,并且输出是从另一个单元格 B2 值中减去。我需要保留 B2作为所有单元格中的常见减法组件

我在单元格 C2 中使用以下公式

=IFERROR(B2-(INDEX(raw!$A:$D,MATCH(1,(raw!$A:$A=data!$A2)*(raw!$C:$C=data!C$1),0),4)),"")

enter image description here

但是如果我把这个公式拖到下一个单元格,D2公式正在更改为
=IFERROR(C2-(INDEX(raw!$A:$D,MATCH(1,(raw!$A:$A=data!$A2)*(raw!$C:$C=data!D$1),0),4)),"")
C2正在替换 B2
enter image description here

我要保留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 在整个单元格范围内保持不变以运行此公式?

最佳答案

我认为您正在寻找 Excel 公式功能中的 anchor 单元格。这可以通过在公式中添加“$”美元符号来完成。因此,将“B2”更改为“$B$2”,当您复制公式时,这应该使 B2 保持锚定。

我不确定这将如何或是否会很好地转换为 VBA,但我认为这可能会为您指明正确的方向。

关于vba - Excel VBA 推荐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27296783/

相关文章:

excel - 相邻单元格的返回值

python - OpenPyXL 使用内置条件格式即 : Duplicate and Unique Values

javascript - 如何将 JavaScript 结果从本地文件发送到 VBA Webbrowser 控件

vba - 如何获取Outlook邮件的接收时间

vba - 用户窗体在 "End Sub"之后关闭,而无需调用 "Unload Me"

excel - 打印一系列超链接

arrays - 在 VBA 中用 2D 数组填充 3D 数组

vba - 应用程序定义或对象定义错误 1004

ms-access - 在立即窗口中查看记录集的数据

excel - 以下代码仅在 H5 为 "Base"时有效。有人可以解释为什么吗?