首页 > 解决方案 > 运行时错误“13”:类型不匹配,在以下代码中:

问题描述

Sub test()

    'Dim total(1 To 9) As Variant
    ReDim total(1 To 9) As Variant


    For i = 1 To 9

    total(i) = Application.WorksheetFunction.SumIf(Sheets("Sheet2").Range(Cells(3, 3), Cells(i, 3)), ">" & _
    Sheets("Sheet2").Range(Cells(3, 6), Cells(i, 6))-60, _
    Sheets("Sheet2").Range(Cells(3, 4), Cells(i, 4)))
    Next i


End Sub

谁能告诉我为什么我一直收到这个错误,尽管我为我的数组使用了变体?对我来说一切都很好。我要做的是从单元格中的日期减去 60 天,然后将初始日期和扣除日期之间的金额相加。所以它会像: 在此处输入图像描述

标签: excelvba

解决方案


  1. Sheets("Sheet2").Range(Cells(3, 6), Cells(i, 6))(标准参数)应为单个单元格或值,而不是范围。
  2. 定义 Sheets("Sheet2").Range(...) 的 Cells(3, 3)、Cells(i, 3) 没有定义的父工作表。请参阅是 . 在由 .Cells 定义时需要在 .Range 中吗?

    with workSheets("Sheet2")
        For i = lbound(total) To ubound(total)
            total(i) = Application.SumIf(.Range(.Cells(3, 3), .Cells(i, 3)), _
                                         ">" & .Cells(i, 6), _
                                         .Range(.Cells(3, 4), .Cells(i, 4)))
        Next i
    end with
    

推荐阅读