Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: связанные ComboBox Добавлено: 28.11.08 12:50  

Автор вопроса:  acidsting
Есть идея сделать связанные 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"

То все начинает работать как надо.

Подскажите как решить данную проблему.

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #1 Добавлено: 28.11.08 19:18
Не знаю как про ошибку 380. У меня начал ругаться уже при Dim SotrudnikVsego = 100
Попробуй вот так:
  1. Dim SotrudnikVsego As Byte
  2. SotrudnikVsego = 100

У меня работает.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам