В качестве альтернативы Combobox следующий код добавляет список проверки (тип Combobox).
Вы должны выбрать ячейку рядом со столом затем выбрать элемент в этом диапазоне $ D $ 14: $ D $ 17
Excel будет стиль столбца. Если вы вставляете строку в диапазон таблиц, Excel автоматически добавляет этот список выбора.
Sub AddListNexttoTable()
Dim ColumnNexttoTable As Integer
Dim FstRowofTable As Integer
Dim NbRowsinTable As Integer
ColumnNexttoTable = Application.Range("My3ColumnTable").Columns.Count + Application.Range("My3ColumnTable").Column
FstRowofTable = Application.Range("My3ColumnTable").Row
NbRowsinTable = Application.Range("My3ColumnTable").Rows.Count
'Select the cell next to the table and on top
Application.Cells(FstRowofTable, ColumnNexttoTable).Select
'Create a Validation List
AddValidationList
CopyValidationList
End Sub
Sub AddValidationList()
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$D$14:$D$17"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Select"
.ErrorTitle = "Oups!"
.InputMessage = "Yo Man"
.ErrorMessage = "Pick Data From the List"
.ShowInput = True
.ShowError = True
End With
End Sub
Sub CopyValidationList()
Selection.AutoFill Destination:=Range("D2:D12"), Type:=xlFillDefault
Range("D2:D12").Select
ActiveCell.SpecialCells(xlCellTypeSameValidation).Select
Range("D1").Select
End Sub
Здесь изображение после выполнения макроса
Здесь изображение после того, как пользовательский первого выбора.
Все, что я могу думать сразу ставит выпадающий основываясь на количестве строк со значениями (I). Затем вы должны повторить для каждого i смещение позиции по высоте строки. По сути, он создает количество combobox, затем распределяет их по смещению. – Cyril
Спасибо за ваш быстрый ответ. можете ли вы предоставить мне письменный код, чтобы я мог реализовать? –
Я бы попытался построить это с нуля. Начните с записи макроса добавления пары comboboxes, позиционирования их, а затем прекратите запись и введите запись. Вот где я и начал бы это делать. – Cyril