2016-12-09 9 views
0

ExcelのVBA式で範囲をどのように使用するために、Excel、私はオプション1で私の式を使用できるように、私が正しくの範囲を設定するにはどうすればよいのオプション1とオプション2エクセルVBAを使用して

をしようとしたとき、私は構文エラーメッセージを取得?

オプション2の場合、通常のエクセル式と同じように範囲を参照できないのはなぜですか?

これは、この数式をこのセルの下の多数の行に適用するためです。 forループを使用しますか?

デフォルトのコードは正しいです。

'Default 
Range("I2").Formula = "=+SUMIFS(R2C2:R434C2,R2C1:R434C1,RC[-1],R2C3:R434C3,""G"")" 

'Option 1 
    Dim MyRange As Range 
    Set MyRange = Range("B2:B434") 
    Range("I2").Formula = _ 
     "=+SUMIFS(" & MyRange & ",R2C1:R434C1,RC[-1],R2C3:R434C3,""G"")" 

'Option 2 
    Range("I2").Formula = _ 
     "=+SUMIFS($B$2:$b$434,R2C1:R434C1,RC[-1],R2C3:R434C3,""G"")" 
+0

@のuser3598756によって答えが使用する正しい構文を示します。 (オプション2はデフォルトのものと同じですが、Excelにフェイルオーバーするのではなく、 'FormulaR1C1'プロパティを正しく使用していることに注意してください)。オプション2は、参照メソッドを混在させようとしていたため1つの公式内で。 – YowE3K

答えて

4
'Default 

Range("I2").Formula = "=+SUMIFS(R2C2:R434C2,R2C1:R434C1,RC[-1],R2C3:R434C3,""G"")" 

'Option 1 

Dim MyRange As Range 
Set MyRange = Range("B2:B434") 
Range("I2").FormulaR1C1= _ 
    "=+SUMIFS(" & MyRange.Address(False,False,xlR1C1) & ",R2C1:R434C1,RC[-1],R2C3:R434C3,""G"")" 

'Option 2 

Range("I2").FormulaR1C1 = _ 
    "=+SUMIFS(R2C2:R434C2,R2C1:R434C1,RC[-1],R2C3:R434C3,""G"")" 
+0

@ YowE3K私はオプション1を試しましたが、もう1つの範囲を適用しました。しかし、それは私のためには機能しません。 – koky

+0

ロング として 'オプション1 薄暗いirow irow = Application.WorksheetFunction.Match( "いいえ番号"、範囲( "A:A")、0) - 2 薄暗いMyRangeとして範囲 暗い母ストリング 母として=" B2:B A2」&irow + 1 セットMyRange =レンジ(HAHA) 暗いMyRange1として範囲 薄暗いhaha1列 haha​​1 =として "A" &irow + 1 セットMyRange1 =レンジ(haha1) 範囲( "True"、 "true"、True、xlR1C1)& "、"&MyRange1.Address(True、True、xlR1C1)& "、R2C3:R434C3、"&MyRange.Address " "G" ")" ' – koky

+0

@oky - あなたのコメントのコードでは、 'SUMIFS'は' SUMIFS(sum_range、criteria_range1、criteria_range2、criteria2) 'の形式であると思われます。つまり、criteria1が不足しているようです。 (R1C1スタイルの式を使用するときは、 'FormulaR1C1'プロパティを使用してください - これは将来の他の問題のリスクを減らします) – YowE3K

関連する問題