2017-07-06 13 views
0

列Jと列タイマーを使用して列Kに結果をランク付けしようとしています。列J & Kは値です。r1c1数式が機能しない

どういうわけか、私のセルがポイントされているところでは1つの値しか生成しません。つまり、セルC19でvbaコードを実行すると、結果が欲しいN6からではなくC19に値1が設定されます。ここで

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 

は私が何が悪かったのかわからない、私のコードです。私は手動でエクセルの式とその正常に動作していますが、私の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