Есть идея сделать связанные combobox.
 
 
Предположим, combobox1 - список подразделений, combobox2 - список сотрудников. 
 
 
Хочется получать в combobox2 список сотрудников, работающих в подразделении, которое будет выбрано в combobox1.
 
 
Сделал лист в excelle. Столбец А - фио сотрудника, столбец В - подразделение в котором он работает, столбец Z - нужен для временного хранения списка пользователей.
 
 
Получилось написать следующий код:
 
 
Private Sub UserForm_Initialize()
 
 
With podrazdelenie_priemnik
 
.RowSource = "B1:B100"
 
End With
 
 
End Sub
 
 
Private Sub podrazdelenie_priemnik_Change()
 
Dim SotrudnikVsego = 100
 
Dim i As Long
 
 
If podrazdelenie_priemnik.Text <> "" Then
 
    For i = 1 To SotrudnikVsego
 
        If Range("B" & CStr(i)) = podrazdelenie_priemnik.Text Then
 
           Range("Z" & CStr(i)) = Range("B" & CStr(i))
 
        End If
 
    Next i
 
End If
 
    
 
    Columns("Z:Z").Select
 
    Selection.Sort Key1:=Range("Z1"), Order1:=xlAscending, Header:=xlGuess, _
 
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
 
        DataOption1:=xlSortNormal
 
 
fio.RowSource = "Z1:Z" & CStr(SotrudnikVsego)
 
    
 
End Sub
 
 
 
 
В результате следующая ошибка: Run Time Error '380': Could not set the RowSource Property. Invalid Property Type 
 
 
Хотя, если заменить строку 
 
fio.RowSource = "Z1:Z" & CStr(SotrudnikVsego) 
 
на следующую строку
 
fio.RowSource = "Z1:Z100" 
 
То все начинает работать как надо.
 
 
Подскажите как решить данную проблему.
Ответить
        |