SUMIFS使用两个工作簿 - 运行时错误“13”

时间:2013-09-24 19:13:13

标签: excel vba excel-vba runtime-error sumifs

这是我在Stack Overflow上发表的第一篇文章。我已经多次使用过这个网站和我的VBA问题,大多数时候,我已经找到了答案。然而,这一次,我发现我无法找到任何可以帮助我的东西。我试图从多个角度解决这个问题,我似乎无法弄明白。我已经使用单个工作簿使这个SUMIFS代码正常工作,但是有两个存在问题。两张表是“ActiveHedge.xlsm”和“LiveDataFeed.xlsm”,这是我的代码:

Sub Call_LiveDataFeed()
Workbooks.Open Filename:="Z:\Users\toms\Desktop\LiveDataFeed.xlsm"
End Sub
Sub CreateFNMA_MonthlyCoupons()
Workbooks("LiveDataFeed.xlsm").Activate
Range("D7").Formula = _
    "=SUMIFS('[ActiveHedge.xlsm]Active Hedge'!$I:$I,'[ActiveHedge.xlsm]Active Hedge'!$H:$H,">="&U9,'[ActiveHedge.xlsm]Active Hedge'!$I:$I,"<="&V9,'[ActiveHedge.xlsm]Active Hedge'!$K:$K,"<"&C5-14)"

所以,我用过&amp;由于前两个标准是在“LiveDataFeed.xlsm”表上更改的小数,而最终标准是在单元格中输入的日期,减去14天,因此在标准范围内的单元格引用之前;输入的日期也会改变。

我发现上面输入的SUMIFS函数可以很好地作为直接输入到“LiveDataSheet.xlsm”工作簿中的工作表中的函数。但是,当放入VBA时,它有一个运行时错误“13”...我的解决方案是使用一个工作簿,只是在我的&gt; =,&lt; =和&lt;周围添加一个额外的“”。 ......现在不行了......任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

如果您的公式在VBA中包含引号,则需要将它们加倍,这样它们就不会与公式末尾的引号相混淆,即

Range("D7").Formula = _
    "=SUMIFS('[ActiveHedge.xlsm]Active Hedge'!$I:$I,'[ActiveHedge.xlsm]Active Hedge'!$H:$H,"">=""&U9,'[ActiveHedge.xlsm]Active Hedge'!$I:$I,""<=""&V9,'[ActiveHedge.xlsm]Active Hedge'!$K:$K,""<""&C5-14)"