Есть идея сделать связанные 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"
То все начинает работать как надо.
Подскажите как решить данную проблему.
Ответить
|