【问题标题】:pass an integer variable into vba array formula将整数变量传递给 vba 数组公式
【发布时间】:2017-09-15 10:41:10
【问题描述】:

我正在尝试将整数值传递给数组公式,下面是代码:-

cnt = 150
cnt2 = 10
Range("H" & cnt2).Select

Selection.FormulaArray = "=INDEX(Input_Sheet!R1C8:R[" & cnt & "]C8,MATCH(1,(backbone_new!RC[-4]=Input_Sheet!R1C2:R[" & cnt & "]C2)*(backbone_new!RC[-3]=Input_Sheet!R1C4:R[" & cnt & "]C4),0))"

我在电子表格中的输出低于:

=INDEX(Input_Sheet!$H$1:$H160,MATCH(1,(backbone_new!D10=Input_Sheet!$B$1:$B160)*(backbone_new!E10=Input_Sheet!$D$1:$D160),0))'

整数 cnt 值为 150,但我在公式中得到 160。有什么想法吗?

【问题讨论】:

  • 你偏移150,因此你得到160。如果你不想改变RC风格,你可以分别声明cnt2和cnt这样:cnt2 = 10cnt = 150 - cnt2

标签: vba excel


【解决方案1】:

当您使用 [" & cnt & "] 时,您会偏移 150 行。当您选择第 10 行中的一个单元格时,您最终会进入第 160 行。

[ ] 表示偏移量。如果您想要实际的行,请这样做:

cnt = 150
cnt2 = 10
Range("H" & cnt2).Select

Selection.FormulaArray = "=INDEX(Input_Sheet!R1C8:R" & cnt & "C8,MATCH(1,(backbone_new!RC[-4]=Input_Sheet!R1C2:R" & cnt & "C2)*(backbone_new!RC[-3]=Input_Sheet!R1C4:R" & cnt & "C4),0))"

即只需删除 [ ] 。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多