0

这是我在 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)"

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

我发现上面输入的 SUMIFS 函数作为直接输入到“LiveDataSheet.xlsm”工作簿中的工作表中的函数工作得非常好。但是,当放入 VBA 时,它有一个运行时错误“13”...我使用一个工作簿对此的解决方案是简单地在我的 >=、<= 和 <...这现在不起作用......任何帮助将不胜感激!

4

1 回答 1

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)"
于 2013-09-24T19:30:52.857 回答