2017-09-07 41 views
1
Worksheets("sheet2").Range("C2").Formula = "=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A," >= "&A2,Sheet1!A:A," < "&B2)" 

我已经在Excel 2007运行上面的代码和我得到一个类型不匹配时设定的公式引入细胞与VBA

运行时错误13类型不匹配

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

回答

0

问题是你需要用另一个报价来转义报价。这意味着公式中的所有报价"变为""

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

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

,你把它变成双引号" your formula here "之间的字符串,那么你需要躲避公式中的所有报价和改变"""像下面:

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

另一种选择是使用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)" 

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