2013-09-24 45 views
0

這是我在堆棧溢出的第一篇文章..我用這個網站多次與我的VBA問題和大部分時間,我已經能夠找到答案。然而,這一次,我發現我找不到任何幫助我的東西。我試圖從多個角度弄清楚這個問題,我似乎無法弄清楚。我已經獲得了此SUMIFS代碼以使用單個工作簿正常工作,但兩個提出了一個問題。兩片「ActiveHedge.xlsm」和「LiveDataFeed.xlsm」這裏是我的代碼:SUMIFS使用兩個工作簿 - 運行時錯誤「13」

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」...我使用一個工作簿的解決方案,只是在我的> =,< =和< =和<之間加上一個額外的「...」這現在不工作...任何幫助將不勝感激!

回答

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)" 
+0

我其實想這但它給了我總計0, –

+0

好吧,但這可能意味着公式在「工作」的程度與其給出的結果一樣多。其中一個標準範圍與總和範圍(第一列)相同 - 這看起來很奇怪,是正確的,應該是H? –

+0

和範圍是第一列,這將是值的總和。有兩個標準範圍:標準一,列H(十進制數)和列K(這是一個日期)。 –

相關問題