我可以设置一个Excelcombobox有一个默认值?

我的ComboBox(名为ddDatabase )可以具有两个值中的任意一个。 这两个值是从一个单独的工作表中的表中拉出来的。 但是,当我打开Excel文件时,两个值都不被选中。 而combobox显示为空。 有什么办法明确设置一个特定的值作为默认值?

经过一些进一步的testing,看起来如果Excel文件与select的第一个combobox的项目一起保存,下一次文件打开它将默认为空白。 在保存,closures和重新打开之后,在combobox中select除第一个以外的任何其他值将保留select。

我试图通过使用此代码打开工作簿时设置值来使用VBA来解决此问题:

 Sub Workbook_Activate() Dim ddDatabase As DropDown Set ddDatabase = ActiveSheet.DropDowns("ddDatabase") ddDatabase.Value = 1 End Sub 

不幸的是,它会抛出以下错误:

unable to set the value property of the dropdown class

有针对这个的解决方法吗?

用这个:

 .ComboBox1.Text = .ComboBox1.List(1) 'Change the number to the value you want as default. 'If you want to default to something like 'select a value' write it as a string 

您必须在创build时自己指定值(或者打开工作簿,或者如果表单处于打开状态)。

编辑:

如果您对此更灵活,您可能需要将其更改为validation列表:

  With f_overview.Range("cell_act").Validation 'Change this to something like Sheets("Sheet1").Range("A1").Validation .delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Acteurs!$E$4:$E$23" 'Change this to "=Sheet1!$A$1:$A$2" End With 

第一条注释行是列表的放置,第二条是你的源值(你的两个值)。

当我在Excel 2013中尝试它时,就像select该combobox中的两个项目之一一样简单,然后保存该工作簿。 下一次我打开它,我select的那个显示为“默认”。

它甚至工作,当我设置两个源单元格中的一个=NOW() (这样显示的值会有所不同,下次打开它),然后select并保存它。 下一次打开时,combobox中仍然显示(更新)值=NOW()

除非你需要一个纯粹的VBA解决scheme?

您可以手动设置它。 也许做workbook_open事件。

 ComboBox1.Text = "SomeText"