Halo semuanya, saya mendapatkan kesalahan kompilasi: Jenis Tidak cocok. dalam kode di bawah ini. Aku berharap kalian bisa membantuku. Terima kasih!

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
2
Mr_Lemonhead 9 Mei 2021, 02:16

1 menjawab

Jawaban Terbaik

ListColumns.DataBodyRange

  • MAXIFS function (Microsoft)
  • Kode ini harus ditulis dalam modul sheet, di mana Anda merujuk ke lembar kerja dengan kata kunci Me. Lembar kerja berisi kotak teks dan kotak kombo. Rentang DataTable (bernama) terdiri dari setidaknya satu sel yang terdapat dalam ListObject (tabel terstruktur Excel).
  • Kesalahan terjadi karena Anda tidak hanya menggunakan 'DataBodyRange bagian' dari kolom daftar.
  • Kedua contoh menggunakan variabel ListObject (tbl) untuk membuat kode lebih mudah dibaca.
  • Contoh pertama menggunakan pemisah garis, sedangkan contoh kedua menggunakan variabel untuk membedakan parameter MaxIfs dengan mudah.
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
0
VBasic2008 9 Mei 2021, 01:46