我想在其他工作簿的一系列活动工作表中执行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 :(得分: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), _
....