0

いくつかのフィールドを計算するために VBA を使用しようとしています。マクロを記録すると、次のようになります。

ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-27]:R4C[-6],2012,RC[-27]:RC[-6])"

問題は、数式の範囲が変更される可能性があることです。

NumOfMonシートの最初の列から数式に必要な列を数える整数変数があります。ただし、上記の式ではオフセットを使用して必要な範囲を決定していますが、範囲が変更される可能性があるため、必要なセルのみを使用するには NumOfMon を使用する必要があります。適切に使用できるように式を変更するにはどうすればよいですか?

次のような変数を使用してみました。

a = 28
NumofMon = 21
 ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-(a-1)]:R4C[-(a-NumOfMon-1)],2012,RC[-(a-1)]:RC[-(a-NumOfMon-1)])"

しかし、「アプリケーション定義またはオブジェクト定義エラー」というエラーが表示されます

4

2 に答える 2

2

基本的

ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-" & (a-1) & "]:R4C[-" & (a-NumOfMon-1) & "],2012,RC[-" & (a-1) & "]:RC[-" & (a-NumOfMon-1) & "])"
于 2013-08-28T12:21:56.910 に答える