2017-04-04 71 views
2

私はエクセルVBAで計算を行うことを試みていますが、私はこれは私が実行しようとしていたコードであるFormulaR1C1 - アプリケーション定義のエラー:ExcelのVBA

Application-Defined or Object-Defined Error

エラーが発生します。エラーは、.FormulaR1C1 = ...行で発生しますが、私はなぜそれがわかりません。

Function CalcNumDays() 
Dim d1 As Date, d2 As Date, NoofDays As Variant 
d1 = "01/01/2017" 
d2 = "03/01/2017" 

NoofDays = Application.WorksheetFunction.NetworkDays(d1, d2) 

With Sheets("ALL") 
    With .Range("K2:K" & .Cells(.Rows.Count, "A").End(xlUp).Row) 
     .FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*NoofDays,0)" 
     .Value = .Value 
    End With 
End With 

End Function 

Sample Data

+0

のですか?サンプルシートまたはサンプルシートの画像を投稿することができます – Miguel

+0

@Miguel - エラーを投げる行は.FormulaR1C1です - サンプルデータの画像を含めるように編集します – BellHopByDayAmetuerCoderByNigh

+0

NoofDaysはスプレッドシートで意味を持たなければなりませんこのようなFormulaR1C1で動作する変数には含まれていません。チェックuser3598756答え – WNG

答えて

2

この

.FormulaR1C1 = "=IFERROR(SUM(RC[-8]+RC[-7]/RC[-4])*" & NoofDays & ",0)" 
+0

それを持って、ありがとう! – BellHopByDayAmetuerCoderByNigh

+0

ようこそ。あなたがすでに持っているように、式にNoofDaysの実際の値を「渡す」必要がありました。あなたはあまりにも括弧が1つしかありませんでした。最後に、回答を受け入れたものとしてマークすることができます。ありがとうございました! – user3598756

+1

いいこと** noofdays **はワークシートの定義名でもなかったし、元の公式が受け入れられただろう! – Jeeped

1

あなたの問題を試みるが、この行です:あなたは、変数NoofDaysを含める

.FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*NoofDays,0)" 

ので、これは文字列の外側になければなりません、アンパサンドを使用して文字列を連結する&

.FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*" & NoofDays & ",0)" 

またSUMを終了するブラケットを欠落していたので、最終的な補正は、エラーを何行を取得している

.FormulaR1C1 = "=IFERROR(SUM((RC[-8]+RC[-7]/RC[-4])*" & NoofDays & "),0)" 
+0

- >あなたの提案は私の構文と同じエラーを与えます。 – BellHopByDayAmetuerCoderByNigh

+0

@BellHop、私の編集を参照してください – Wolfie

関連する問題