2017-07-06 135 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