Excel用户窗体combobox属性Rowsource框问题?

我在Excel中有一个用户表单,用作计算器。

在这个用户表单中,我有两个combobox(1和2)

在VBA编辑器中,selectComboBox1,在属性中,在Rowsourse下我有:Sheet1!a4:a5

在Sheet1中,A4 =奥克兰,A5 =基督城

这很好,当我运行用户表单时,有一个带有两个选项(奥克兰或基督城)的下拉箭头。

然而,我的问题是,当你打开这个工作簿,我有一个VBA命令来隐藏它的用户视线,让他们只有用户窗体工作,这是所期望的。

问题是,如果你有另一个工作簿打开,然后打开这个计算器工作簿(自动隐藏自己)。 然后在已打开的另一个工作簿中填写Sheet1!a4:a5的combobox列表,而不是实际包含用户窗体所来自的“Auckland”和“Christchurch”的工作簿。

我已经尝试通过将下列内容放在行来源框中属性:[book1.xlsm] sheet1!a4:a5,但是这会出现“无效的属性值”错误消息,使combobox的Rowsource更具体。

我也试过做一个:

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 

但是,当两个代码打开并运行时,combobox都是空的,没有列表。

我认为easist解决scheme将以某种方式将完整path(包括工作簿名称)放入属性下的行源框中。 但是我必须错过一些东西,因为它为我提供了这个错误?

所有的帮助将不胜感激。

谢谢

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

您在完整path行源中缺less'
应该是这样的:

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

我有类似的问题,可以在这里find。

你可以尝试在userform上添加这个代码:

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

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