Excel Userform组合框属性Rowsource框问题?

时间:2013-06-18 02:44:10

标签: excel combobox userform

我在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框中。但是我必须错过一些东西,因为它为我提出了这个错误?

非常感谢所有帮助。

由于

3 个答案:

答案 0 :(得分:2)

将组合框的行源属性设置为:SheetName!$Col$Row:$Col$Row,例如:Location!$A$1:$A$3

答案 1 :(得分:2)

您的完整路径行来源中缺少' 它应该是这样的:

Me.ComboBox1.RowSource = "'[book1.xlsm]Sheet1'!$A$4:$A$5"

我有类似的问题可以找到HERE

答案 2 :(得分:0)

您可以尝试在userform上添加此代码:

Private Sub UserForm_Initialize()
ComboBox1.list = Array("Auckland","Christchurch")
End Sub

然后将Combobox属性“MatchEntry”设置为“1”。