【问题标题】:SUMIFS function from other workbook - Error is Type Mismatch来自其他工作簿的 SUMIFS 函数 - 错误是类型不匹配
【发布时间】:2015-08-09 11:18:18
【问题描述】:

我想在其他工作簿的一系列活动工作表中执行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 功能。它也没有工作。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您正在传递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), _
        ....
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多