Автозаполнение Combobox

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Dark
Сообщения: 63
Зарегистрирован: 23 июл 2008, 23:21

[CENTER]Добрый день сообщество програмистров!![/CENTER]
[INDENT]Огромная просьба помочь разобраться с Combobox'ом! И просьба не отсылать по форумам и темам, т.к. я не сильно понимаю в VBA![/INDENT]
Есть Лист1 на котором имеются данные Иванов (а2), Петров (а3), Сидоров (а4). При запуске Userform1 (Private Sub UserForm_Initialize()) Combobox3 должно заполняться с Листа1 значениями a2,a3,a4.......an. Т.к. Столбец А будет постоянно пополняться, то соответственно необходимо чтобы значение an постоянно пополнялось.
[INDENT]С этим и возникают проблемы.Просьба помочь дополнить код: [/INDENT]
Private Sub UserForm_Initialize()
Dim K, N, I, W As Integer
If W = 0 Then W = 1
K = W
20: For I = K To K
N = Sheets("Лист1").Range("a1").Offset(I, 0).Value
If N = "" Then K = K - W: GoTo 10
K = K + W: GoTo 20
Next I

10:
iMassiv = Range("A2:A4").Value 'как сделать чтобы вместо A4 использовалось A+K т.е. в нашем случае A5 :confused:
ComboBox3.List = iMassiv
End Sub
[INDENT]Пробывал в коде iMassiv = Range("A2:A4").Value поставить А+K, не получилось. На всякий случай вкладываю Excel'евский файл:[ATTACH]1481[/ATTACH][/INDENT]

[CENTER]ЗАРАНЕЕ БЛАГОДАРЕН!!![/CENTER]
nilem
Сообщения: 112
Зарегистрирован: 14 ноя 2008, 01:59
Откуда: Уфа

Попробуйте так:

Код: Выделить всё

Private Sub UserForm_Initialize()
Dim x
x = Range([a2], Cells(Rows.Count, 1).End(xlUp)).Value
With Me.ComboBox1
    .RowSource = "": .List = x: .ListIndex = 0
End With
End Sub
На всякий случай, Cells(Rows.Count, 1).End(xlUp) - это последняя заполненная ячейка в столбце А (1-й столбец).
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

Можно так:

Код: Выделить всё

Private Sub UserForm_Initialize()
    Me.ComboBox1.RowSource = Range([A2], Cells(Rows.Count, 1).End(xlUp)).Address
End Sub
Ответить