Страницы: 1
RSS
Проблема при назначении комбобоксу функции WorksheetFunction.Index и WorksheetFunction.Match
 
Добрый день, уважаемые форумчане.

У меня возникла следующая проблема: В экселе создал ползовательскую форму и привязал все комбобоксы друг к другу так чтобы при выборе из выпадающего списка одного объекта все последующие заполнялись при помощи  WorksheetFunction.Index и WorksheetFunction.Match. Проблема же заключается в том, что когда идентичный макрос назначаю для комбобокса cboSapCode приложение выдает ошибку. Ниже прилагаю файлик который идентичен исходному файлу (все необходимые поля есть).
Код
Private Sub cboEquipment_Change()
 Dim ws As Worksheet
  Set ws = Workbooks("Test").Worksheets("EQUIPMENT")
   Dim rn As Range
    Set rn1 = ws.Range("EQUIPMENT")
    If Me.cboEquipment.Value = "" Then
       Me.cboProdCode.Value = ""
    Else: Me.cboProdCode.Value = WorksheetFunction.Index(ws.Range("PRODUCT_CODE"), WorksheetFunction.Match(Me.cboEquipment.Value, ws.Range("EQ_RNG"), 0))
    End If
End Sub

Private Sub cboProdCode_Change()
 Dim ws As Worksheet
  Set ws = Workbooks("Test").Worksheets("EQUIPMENT")
   Dim rn As Range
    Set rn1 = ws.Range("EQUIPMENT")
    If Me.cboProdCode.Value = "" Then
       Me.cboSapCode.Value = ""
    Else: Me.cboSapCode.Value = WorksheetFunction.Index(ws.Range("SAP_CODE"), WorksheetFunction.Match(Me.cboProdCode.Value, ws.Range("PRODUCT_CODE"), 0))
    End If
End Sub

Private Sub cboSapCode_Change()
 Dim ws As Worksheet
  Set ws = Workbooks("Test").Worksheets("EQUIPMENT")
   Dim rn As Range
    Set rn1 = ws.Range("EQUIPMENT")
    If Me.cboSapCode.Value = "" Then
       Me.cboEquipment.Value = ""
    Else: Me.cboEquipment.Value = WorksheetFunction.Index(ws.Range("EQ_RNG"), WorksheetFunction.Match(Me.cboSapCode.Value, ws.Range("SAP_CODE"), 0)) 'Строка с ошибкой
    End If
End Sub
Весь прикол в том, что все остальные абсолютно идентичные макросы работают и именно этот молчит как партизан. Помогите пожалуйста
 
Лень разбираться с вашим чудо-кодом.
Что должно быть в итоге?
"Все гениальное просто, а все простое гениально!!!"
 
WorksheetFunction.Match(Val(Me.cboSapCode.Value), ws.Range("SAP_CODE"), 0)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Что должна вернуть функция Match если в столбце Produ/kod нет номера SAO/Code?
А слона-то я и не заметил)
Изменено: Polkilo - 20.02.2019 15:34:49
 
Ігор Гончаренко, огромное спасибо!!!! Все заработало
Страницы: 1
Наверх