我在Excel中有一个用户窗体,它作为一个计算器工作。
在这个用户窗体中,我有两个组合框(1和2)
在VBA编辑器中,选择ComboBox1,在属性下面的行来源中,我有:Sheet1!A4:A5
在Sheet1中,A4 = 奥克兰,A5 = 克赖斯特彻奇
这很好,当我运行用户窗体时,会出现一个下拉箭头,其中包括两个选项(奥克兰或克赖斯特彻奇)。
然而,我的问题是,当你打开此工作簿时,我有一个VBA命令,将其隐藏在用户视线之外,只留下用户窗体供他们使用,这正是所期望的。
问题在于,如果您打开另一个工作簿,然后打开这个计算器工作簿(自动隐藏自身),那么组合框列表将由已经打开的其他工作簿上的Sheet1!A4:A5填充,而不是实际包含“奥克兰”和“克赖斯特彻奇”的工作簿。
我尝试通过在属性的行来源框中输入以下内容使组合框的行来源更加具体:[book1.xlsm]sheet1!a4:a5,但是出现“无效的属性值”错误消息。
我还尝试制作一个:
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框中以某种方式放入完整路径(包括工作簿名称)。但是,我一定漏掉了什么,因为它对我来说出现了错误?
非常感谢任何帮助。
谢谢。