Самоучитель VBA

         

ПХЯ У10 10 Автоматическое расширение элементов раскрывающегося списка



пХЯ. У10.10. Автоматическое расширение элементов раскрывающегося списка


Предусмотреть в приложении средства поиска товара. При продаже товара записывать информацию о проданном товаре в базу данных, хранящуюся на рабочем листе продано. При списании товара записывать информацию о нем в базу данных, хранящуюся на рабочем листе Списание. Обеспечить программную фильтрацию, сортировку данных и построение обобщающих сводных таблиц как по проданным, так и по списанным и находящимся еще на складе товарам.

Следующая процедура является примером того, как можно автоматически добавлять в раскрывающийся список новые элементы. В диапазон A1:А2 рабочего листа, на основе которого строится раскрывающийся список, введем кг и штук (Рисунок У10.10). При вводе в поле раскрывающегося списка нового элемента, отличного от предыдущих, и нажатии кнопки CommandButton1, этот элемент программно вводится в ячейку АЗ. Теперь раскрывающийся список автоматически будет строиться по диапазону A1 : АЗ и т. д.

Private Sub CommandButtonl_Click()

Dim Диапазон As String

'

' Диапазон, на основе которого строится поле со списком

'



Dim n, i As Integer

'

' n - число элементов в диапазоне

'

Dim Новый As String

'

' Новый - .элемент, вводимый в поле со списком

n = Application.CountAfRange("A:A"))

Новый = ComboBoxl.Text

'

' Проверка, совпадает ли элемент, вводимый в поле со списком,

' с каким-либо элементом списка. Если не совпадает, то

' он добавляется в конец диапазона, по которому строится список

'

If ComboBoxl.MatchFound = False Then

Cells(n + 1, .1).Value = Новый

Диапазон = "A1:A" & CStr(n + 1)

ComboBox1.RowSource = Диапазон

End If

End Sub

'

Private Sub UserForm_Initialize()

Dim Диапазон As String

Dim n As Integer

n = Application.CountA(Range("A:A"))

Диапазон = "A1:A" & CStr(n)

ComboBoxl.RowSource = Диапазон

UserForml.Show

End Sub



Содержание раздела