#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