簡體   English   中英

為什么我會收到此編譯錯誤:類型不匹配

[英]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 (微軟)
  • 此代碼必須編寫在工作表模塊中,您可以在其中使用Me關鍵字引用工作表。 工作表包含一個文本框和一個組合框。 DataTable (命名)范圍由至少一個包含在ListObject (Excel 結構化表)中的單元格組成。
  • 發生錯誤是因為您沒有僅使用列表列的“ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM