Я пытаюсь создать процедуру обновления строк VBA для серии из 3 элементов управления combobox в пользовательской форме. Три со спискования все находятся в кадре с именем «frm1» Строковый источник comboboxes представляет собой три отдельных столбца на листе. Рабочий лист имеет названия «параметры» и . Верхняя ячейка в каждом из трех колонок, содержащих строки, имеет то же имя, что и поле со списком, которое ссылается на него. Идея состоит в том, что я могу писать в дополнительных строках в rowource для любого из combobox (просто введя его в правый столбец рабочего листа), а затем запустить подпрограмму и тем самым автоматически расширить выделение строк для соответствующего поля.VBA excel: обновить rowsource для управления combobox путем изменения размера
Однако запуск сценария (вызывая его из UserForm_Activate() рутинного) дает мне «во время выполнения-ошибка„13“: Введите несоответствие»
из вас может помочь мне?
Private Sub UpdateCB()
Dim j As Control
Dim i As Integer
For Each j In frm1.Controls
i = 1
Do Until ThisWorkbook.Sheets("options").Range(j.Name).Offset(i, 0).Value = ""
i = i + 1
Loop
j.RowSource = ThisWorkbook.Sheets("options").Range(j.Name).Resize(i)
Next j
End Sub
Попробуйте использовать 'Dim J Как MSForms.Control' - предполагая, что у вас есть ничего, кроме comboboxes на форме. – Rory
На какой строке возникает ошибка? –
Привет, Рори ... THX для вашего предложения, но я ничего не меняю – user2938867