我在 Excel 中有一个用作计算器的用户表单。
在这个用户表单中,我有两个组合框(1 和 2)
在 VBA 编辑器中,选择 ComboBox1,在属性中,在 Rowsourse 下我有:Sheet1!a4:a5
在 Sheet1 中,A4 = 奥克兰,A5 = 基督城
这很好,当我运行用户窗体时,有一个带有两个选项(奥克兰或基督城)的下拉箭头。
但是我的问题是,当您打开此工作簿时,我有一个 VBA 命令将其隐藏在用户视线之外,只留下他们需要使用的用户窗体。
问题是,如果您打开了另一个工作簿,则打开此计算器工作簿(它会自动隐藏自身)。然后组合框列表由 Sheet1!a4:a5 在另一个已经打开的工作簿上填充,而不是实际包含用户窗体来自的“Auckland”和“Christchurch”的工作簿。
我尝试通过将以下内容放入属性的行源框中,使组合框的行源更加具体:[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
但是,当它打开并运行这两个代码时,组合框现在是空的并且没有列表。
我认为最简单的解决方案是以某种方式将完整路径(包括工作簿名称)放入属性下的行源框中。但是我一定错过了一些东西,因为它给我带来了那个错误?
所有帮助将不胜感激。
谢谢