【问题标题】:r1c1 formula not workingr1c1 公式不起作用
【发布时间】:2017-07-07 01:58:42
【问题描述】:

我正在尝试使用 J 列和 K 列中的决胜局对值进行排名,结果填充在 N 列中。J 列和 K 列是值。

不知何故,它只在我的单元格指向的地方生成一个值,这意味着如果我在单元格 C19 处运行 vba 代码,它只会在 C19 中填充值 1,而不是从我想要结果的 N6 中填充。

这是我的代码,

Sub test()
Dim LR1 As Long
LR1 = Range("J" & Rows.Count).End(xlUp).Row
With Range("N6:N" & LR1)
   ActiveCell.FormulaR1C1 = "=1+SUMPRODUCT(--(R6C10:R33C10<RC[-4]))+SUMPRODUCT(--(R6C11:R33C11<RC[-3]),--(R6C10:R33C10=RC[-4]))"
End With
End Sub

我不确定出了什么问题。我尝试使用 excel 公式手动完成它,它工作正常,但不是我的 vba 代码。

【问题讨论】:

  • 在 15 年的 Excel/VBA 中从未需要使用 R1C1 引用。 A1怎么了?
  • 如果我的 excel 指针位于 A1,它只会在 A1 中填充值 1,并且不会计算任何其他内容。
  • 如果有更快的方法,请告诉我。谢谢

标签: vba excel


【解决方案1】:

ActiveCell 是你的问题。

改变 ActiveCell.FormulaR1C1 = "=1+SUMPRODUCT(--(R6C10:R33C10&lt;RC[-4]))+SUMPRODUCT(--(R6C11:R33C11&lt;RC[-3]),--(R6C10:R33C10=RC[-4]))"

致.FormulaR1C1 = "=1+SUMPRODUCT(--(R6C10:R33C10&lt;RC[-4]))+SUMPRODUCT(--(R6C11:R33C11&lt;RC[-3]),--(R6C10:R33C10=RC[-4]))"

删除它,它应该做你想做的事。

您将希望完全限定您的 Range 引用,因为它们不依赖于 ActiveSheet。这将为您提供一致的行为和结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多