包含variables的FormulaR1C1 – 应用程序定义的错误:Excel VBA

我正在尝试在Excel VBA中进行计算,但是出现错误

应用程序定义或对象定义的错误

这是我正在尝试执行的代码。 错误发生在线.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 

样本数据

尝试这个

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

你的问题是这一行:

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

你想包括variablesNoofDays ,所以这必须超出string,使用&符号连接string&

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

你也错过了一个括号来结束SUM ,所以最后的修正是

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