我在Excel中有一个用作表单的用户表单。
在这个用户表单中,我有两个ComboBox(1& 2)
在VBA编辑器中,选择了ComboBox1,在属性中,在Rowsourse下我有:Sheet1!a4:a5
在Sheet1中,A4 =奥克兰,A5 =基督城
这很好,当我运行userform时,会出现一个带有两个选项的下拉箭头(奥克兰或基督城)。
但是我的问题是,当你打开这个工作簿时,我有一个VBA命令可以将它从用户的视线中隐藏起来,只留下用户表单来处理你想要的东西。
问题是,如果您打开另一个工作簿,请打开此计算器工作簿(自动隐藏)。然后组合框列表由另一个已经打开的工作簿上的Sheet1!a4:a5填充,而不是实际包含“Auckland”&的工作簿。用户形式来自的“基督城”。
我尝试通过将以下内容放在属性中的rowsource框中来使组合框的Rowsource更具体:[book1.xlsm] sheet1!a4:a5但是这会出现“无效的属性值”错误消息。< / p>
我也试过制作:
Private Sub Userform1_Initialize()
ComboBox1.Additem "Auckland"
ComboBox1.Additem "Christchurch"
End Sub
还试过这个:
Private Sub Userform1_Initialize()
ComboBox1.RowSource = Workbooks("book1.xlsm").Sheets("Sheet1").Range("a4:a5").Value
End Sub
然而,当它打开并运行时两个代码现在组合框都是空的并且没有列表。
我认为简单的解决方案是以某种方式将完整路径(包括工作簿名称)放入属性下的rowsource框中。但是我必须错过一些东西,因为它为我提出了这个错误?
非常感谢所有帮助。
由于
答案 0 :(得分:2)
将组合框的行源属性设置为:SheetName!$Col$Row:$Col$Row
,例如:Location!$A$1:$A$3
。
答案 1 :(得分:2)
答案 2 :(得分:0)
您可以尝试在userform上添加此代码:
Private Sub UserForm_Initialize()
ComboBox1.list = Array("Auckland","Christchurch")
End Sub
然后将Combobox属性“MatchEntry”设置为“1”。