Вы можете установить поле со списком ListFillRange
:
Sheet1.ComboBox1.ListFillRange = "Sheet1!A2:A7"
A ListColumn
имеет Range
, поэтому вы можете использовать его свойство Address
:
Sheet1.ComboBox1.ListFillRange = Worksheets("Engine").ListObjects("PeopleList").ListColumns("Name").Range.Address
Это также добавит заголовок столбца, поэтому, как вы упомянули, вы можете использовать вместо него свойство DataBodyRange
и его свойство .Address
.
Sheet1.ComboBox1.ListFillRange = Worksheets("Engine").ListObjects("PeopleList").ListColumns("Name").DataBodyRange.Address
EDIT
Согласно комментариям, .ListFillRange
существует только в элементах управления формой ActiveX, поэтому для ComboBox UserForm используйте Rowsource
Sheet1.ComboBox1.RowSource = myRange