错配错误VBA上的适当定义

时间:2018-06-08 13:59:27

标签: excel vba excel-vba

您好,这是一个扩展,上一个问题Here

目前我正在尝试使用复杂的excel公式并转换为application.worksheetfunction VBA进程,以便在代码执行期间进行评估。

现在最大的问题是我遇到了Mismatch错误,发布了我的所有定义。任何人都明白为什么这会引起不匹配错误?

    Dim mws As Worksheet
    Dim wf As WorksheetFunction
    Dim mwsN As Range
    Dim mwsC As Range
    Dim mwsB As Range
    Dim mwsLast As Range

    Set wf = Application.WorksheetFunction
    Set mws = Sheets("Marks")
    Set mwsN = mws.Range("N:N")
    Set mwsC = mws.Range("C:C")
    Set mwsB = mws.Range("B:B")
    LastMWSR = mws.Cells(mws.Rows.Count, "B").End(xlUp).Row
    ClastMWSC = mws.Cells(1, mws.Columns.Count).End(xlToLeft).Column
    Set mwsLast = mws.Cells(LastMWSR + 1, ClastMWSC - 1)


    'error, is thrown just below this line

    mws.Cells(LastMWSR + 1, ClastMWSC).Value = _
    wf.SumIfs(mwsN, mwsB, wf.Index(mwsB, wf.Max(wf.Index((mwsC = mwsLast) * wf.Row(mwsC), 0))), mwsC, mwsLast)

编辑:

为简单起见,请参阅正在复制的excel公式

=SUMIFS($N:$N,$B:$B,INDEX($B:$B,MAX(INDEX(($C:$C=$AM41)*ROW($C:$C),0))),$C:$C,$AM41)

EDIT2:这是针对同一问题的又一次尝试。这样我会插入公式计算它然后粘贴为值,尽管它仍然会抛出不匹配错误。

mws.Cells(LastMWSR + 1, CLastMWSC).Formula = "=SUMIFS(" & mws.Range("N:N").Address & "," & mws.Range("B:B").Address & ",INDEX(" & mws.Range("B:B").Address & ",MAX(INDEX((" & mws.Range("C:C").Address & "=" & mws.Cells(LastMWSR + 1, CLastMWSC - 1).Address & "*ROW(" & Range("C:C").Address & ",0)))," & mws.Range("C:C") & "," & mws.Cells(LastMWSR + 1, CLastMWSC - 1).Address & ")"

0 个答案:

没有答案