Страница 1 из 1

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

Добавлено: 28 май 2011, 22:30
Dark
[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]

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

Добавлено: 29 май 2011, 08:20
nilem
Попробуйте так:

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

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-й столбец).

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

Добавлено: 30 май 2011, 05:22
SAS888
Можно так:

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

Private Sub UserForm_Initialize()
    Me.ComboBox1.RowSource = Range([A2], Cells(Rows.Count, 1).End(xlUp)).Address
End Sub