使用VBA将公式设置到单元格时types不匹配

Worksheets("sheet2").Range("C2").Formula = "=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A," >= "&A2,Sheet1!A:A," < "&B2)" 

我已经在Excel 2007中运行上面的代码,我得到了一个

运行时错误13types不匹配

上面的代码用于从表单1中进行平均操作,并在表单2中input。我需要一些帮助来纠正错误。

问题是你需要用另一个引号来避开引号。 这意味着公式中的所有引号变成""

如果该单元格中的公式应该是

 =AVERAGEIFS(Sheet1!E:E,Sheet1!A:A,">=" & A2,Sheet1!A:A,"<" & B2) 

你把它放在一个双引号之间的string" your formula here " ,那么你需要转义公式中的所有引号,并将"变成""如下所示:

 Worksheets("sheet2").Range("C2").Formula = _ "=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A,"">="" & A2,Sheet1!A:A,""<"" & B2)" 

另一种select是使用Chr(34)而不是"

 Worksheets("sheet2").Range("C2").Formula = _ "=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A," & Chr(34) & ">=" & Chr(34) & " & A2,Sheet1!A:A," & Chr(34) & "<" & Chr(34) & " & B2)" 

这在技术上是相同的,但在这种情况下不是非常可读的。