2015-08-09 1 views
0

Я хотел бы сделать SUMIFS Функция в диапазоне активных листов из другой книги. Вот где я получаю мою ошибку Macro:Функция 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 Вот что я сделал по вашему первому предложению, и теперь я понял, что пропустил запятую ... хе-хе ... счастлив теперь .. ^^ Спасибо! –

+0

Если вы нашли ответ полезным, рассмотрите вопрос о повышении или принятии (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235). – Bond

Смежные вопросы