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