Сначала немного сложнее, чем я думал. Если вы говорите о Form
элементе управления вместо ActiveX
, вы хотите установить свойство .Text
(так же, как в связанном ответе).
Однако, как только вы установите свойство .Text
, вы в конечном итоге вы меняете значения, но в вашем ComboBox
нет визуальных изменений. Один из способов преодолеть это - .OnAction
, ссылающийся на Sub
, чтобы снова изменить это свойство .Text
в соответствии с .Value
. И поскольку .Value
в свою очередь вернет Index
, мы можем использовать его в свойстве .List
.
Ниже приведен пример кода, чтобы повторить то, о чем я говорю:
Sub Test()
Dim Bx As Object
'Add ComboBox for testing
Set Bx = Worksheets("Sheet1").DropDowns.Add(0, 0, 100, 15)
Bx.Name = "Combo Box 1"
'Add values to box for testing
Bx.AddItem 100
Bx.AddItem 200
Bx.AddItem 300
Bx.AddItem 400
Bx.AddItem 500
'Create the possibility to change .Text property according to .Value
Bx.OnAction = "StandardVal"
'Set standard value
Bx.Text = 500
End Sub
Sub StandardVal()
With Worksheets("Sheet1").DropDowns("Combo Box 1")
.Text = .List(.Value)
End With
End Sub
В случае OP он может установить свойство .Text
вместо .Value
и назначить макрос (например, приведенный выше пример макроса "StandardVal") для ComboBox