Excel VBA: не удается получить свойство match класса worksheetfunction ошибка времени выполнения 1004

#excel #vba

#excel #vba

Вопрос:

У меня есть следующий код, но я получаю ошибку: «не удается получить свойство match класса worksheetfunction»

кто-нибудь может мне помочь?

 Sub ASub()
    'This part is for the Fully Dynamic and Dependent Combobox Client ID and Account Nr.
    'Client ID Part
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Clients")
Dim i As Integer

Me.cbox_clientID.Clear
    For i = 2 To Application.CountA(sh.Range("1:1"))
        Me.cbox_clientID.AddItem sh.Cells(1, i).Value
    Next i
End Sub
  

Комментарии:

1. В этом коде нет соответствия.

2. Возможно, вам следует объяснить, какова ваша цель и где match вступит в игру. В чем проблема, с которой вы столкнулись с вашей стороны?

3. Только что опубликовал полный код. У меня есть два выпадающих списка, если я выберу clintID в выпадающем списке учетной записи, будет показана связанная учетная запись. Но если я выберу клиента в clintID и начну удалять их с помощью backspace, я получу ошибку в строке темы.

Ответ №1:

используйте «WorksheetFunction.Приложение»но».CountA». используйте первый.

Ответ №2:

Похоже, не был опубликован полный код. У меня есть список с номером учетной записи. Если я выберу один, а затем начну удалять учетную запись, код nr приведет меня к вышеуказанному сообщению об ошибке. поскольку нет совпадения с номером учетной записи развертывания.

 'Order Input Date Format Order Date
Private Sub UserForm_Activate()

'This part is for the Fully Dynamic and Dependent Combobox Client ID and Account Nr.
'Client ID Part

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Clients")
Dim i As Integer

Me.cbox_clientID.Clear

For i = 2 To Application.CountA(sh.Range("1:1"))
    Me.cbox_clientID.AddItem sh.Cells(1, i).Value
Next i

End Sub

'This part is for the Fully Dynamic and Dependent Combobox Client ID and Account Nr.
'Account Part
Private Sub cbox_clientID_Change()

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Clients")

Dim i, n As Integer
Me.cbox_account.Clear

n = Application.WorksheetFunction.Match(Me.cbox_clientID.Value, sh.Range("1:1"), 0)

For i = 2 To Application.WorksheetFunction.CountA(sh.Cells(1, n).EntireColumn)
    Me.cbox_account.AddItem sh.Cells(i, n).Value

Next i

Me.cbox_account.ListRows = 20

End Sub
  

Ответ №3:

Я только что исправил, поскольку в моем случае работает следующее.

 'Match Error
On Error Resume Next