我的ComboBox(名为ddDatabase
)可以有两个值之一。这两个值是从单独工作表中的表中提取的。但是,当我打开Excel文件时,这两个值都没有被选中。相反,ComboBox显示为空。有没有办法明确地将特定值设置为默认值?
经过一些进一步测试后,如果Excel文件保存时选择了ComboBox的第一项,则下次打开文件时,默认为空白。选择ComboBox中除第一个以外的任何其他值将在保存,关闭和重新打开后保留选择。
我尝试使用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
有解决方法吗?
答案 0 :(得分:4)
使用此:
.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
您必须在创建时自行指定值(或在工作簿打开时指定值,如果表单处于打开状态,则表单打开)。
编辑:
如果您对此更灵活,可能需要将其更改为验证列表:
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
第一个注释行用于列表的放置,第二个是你的源值(你的两个值)。
答案 1 :(得分:1)
您可以手动设置它。也许在workbook_open事件上做。
ComboBox1.Text = "SomeText"
答案 2 :(得分:0)
当我在Excel 2013中尝试它时,就像选择该ComboBox中的两个项目之一然后保存工作簿一样简单。下次我打开它时,我选择的那个显示为"默认"。
当我将两个源单元格中的一个设置为=NOW()
(以便下次打开时显示的值不同)时,它甚至可以工作,然后选择并保存它。下次打开时,它仍然在ComboBox中显示(更新的)=NOW()
值。
除非您需要纯VBA解决方案?
答案 3 :(得分:0)
将默认值设为下拉菜单中的第一个选项。
With ActiveSheet.Shapes("ddDatabase").ControlFormat
.value = 1
End With