2017-07-06 110 views
0

我想要使用列J和列K中的联系断路器对列中的值进行排序,结果在列N中填充。列J & K是值。r1c1公式不起作用

不知何故,它只在我的单元格指向的任何位置产生一个值,这意味着如果我在单元格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代码。

+0

从未*需要*在15年的Excel/VBA中使用R1C1引用。 A1有什么问题? –

+0

如果我的excel指针在A1上,它只会在A1中填充值1,而没有其他值被计算出来。 – sc1324

+0

如果有更快的方法,请让我知道。谢谢 – sc1324

回答

1

ActiveCell是你的问题。

变化 ActiveCell.FormulaR1C1 = "=1+SUMPRODUCT(--(R6C10:R33C10<RC[-4]))+SUMPRODUCT(--(R6C11:R33C11<RC[-3]),--(R6C10:R33C10=RC[-4]))"

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

删除,它应该做你想要什么。

您将需要完全限定您的Range参考文献,因为它们不取决于ActiveSheet。这将为您提供一致的行为和结果。

+0

谢谢你解决了我的问题。 – sc1324