Why am I getting this Compile Error: Type Mismatch

Why am I getting this Compile Error: Type Mismatch

大家好,我遇到编译错误:类型不匹配。在下面的代码中。我希望你们能帮助我。谢谢!

Private Sub cmbBusId_AfterUpdate()

With Me

.txtStOdo = Application.WorksheetFunction.MaxIfs(Range("DataTable").ListObject.ListColumns("Ending Odometor"), (Range("DataTable").ListObject.ListColumns("Bus ID")), Me.cmbBusId)

End With

End Sub

ListColumns.DataBodyRange

  • MAXIFS function(微软)
  • 此代码必须写在 sheet 模块中,您可以在其中使用 Me 关键字引用作品 sheet。 worksheet 包含一个文本框和一个组合框。 DataTable(命名)范围由至少一个包含在 ListObject(Excel 结构化 table)中的单元格组成。
  • 发生错误是因为您没有只使用列表列的“DataBodyRange 部分”。
  • 两个示例都使用了 ListObject 变量 (tbl) 以使代码更具可读性。
  • 第一个示例使用行分隔符,而第二个示例使用变量来轻松区分 MaxIfs 参数。
Option Explicit

Private Sub cmbBusId_AfterUpdate1()

    With Me
        Dim tbl As ListObject: Set tbl = .Range("DataTable").ListObject
        .txtStodo = Application.WorksheetFunction.MaxIfs( _
            tbl.ListColumns("Ending Odometor").DataBodyRange, _
            tbl.ListColumns("Bus ID").DataBodyRange, _
            .cmbBusId)
    End With

End Sub

Private Sub cmbBusId_AfterUpdate2()

    With Me
        
        Dim tbl As ListObject: Set tbl = .Range("DataTable").ListObject
        Dim mrg As Range ' Max Range
        Set mrg = tbl.ListColumns("Ending Odometor").DataBodyRange
        Dim crg1 As Range ' Criteria Range 1
        Set crg1 = tbl.ListColumns("Bus ID").DataBodyRange
        Dim Criteria1 As Double ' Criteria 1
        Criteria1 = .cmbBusId
        
        .txtStodo = Application.WorksheetFunction.MaxIfs(mrg, crg1, Criteria1)
    
    End With

End Sub