2015-08-09 94 views
0

我想在功能在其他工作簿的活動工作表範圍內。這裏就是我得到我的宏的錯誤:SUMIFS功能從其他工作簿 - 錯誤是類型不匹配

ActiveSheet.Range(ActiveSheet.Cells(6, lastCol + 1), 
        ActiveSheet.Cells(lastRow, lastCol + 1)).Formula = Application.WorksheetFunction.SumIfs(" ' " & wbGSD.Name & "'!$F$10:$F$" & wbGSDlastRow & ",'" & wbGSD.Name & "'!$B$10:$B$" & wbGSDlastRow & ",B6,'" & wbGSD.Name & "'!$C$10:$C$" & wbGSDlastRow & ", Total") 

我得到的錯誤是:

類型不匹配

我試過Sumif功能。它也沒有工作。

回答

0

你正在通過SumIfs()一個長字符串。它不需要一個長字符串。它需要一些參數,其中前兩個是Range對象,而不是字符串。如果你想寫你的公式作爲一個長字符串,那麼不需要WorksheetFunction.SumIfs()。只需指定字符串公式的範圍內的Formula屬性:

Range("A1").Formula = "=SUMIFS('" & wbGSD.Name & "'!$F$10:$F$" & ... 

如果你真的希望使用WorksheetFunction.SumIfs(),你需要通過傳遞正確類型的各個參數正確地使用它:

Range("A1") = WorksheetFunction.SumIfs(_ 
    Sheets(wbGSD.Name).Range("$F$10:$F$" & wbGSDlastRow), _ 
    Sheets(wbGSD.Name).Range("$B$10:$B$" & wbGSDlastRow), _ 
    .... 
+0

謝謝邦德! <3 <3 <3這就是我對你的第一個建議所做的事情,現在我意識到我錯過了一個逗號...... hehehe ......現在開心了.. ^^謝謝! –

+0

如果您發現有用的答案,請考慮[upvoting或accepting](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)。 – Bond