使用VBA用户表单,如何使用不同的文本和值填充组合框?

使用VBA用户表单,如何使用不同的文本和值填充组合框?,vba,excel,combobox,Vba,Excel,Combobox,我试图用命名范围填充VBA userform组合框,我希望文本值显示在组合框中供用户选择,但我希望返回的值是对初始命名范围的单元格引用。这样,它将指向指定的范围,如果我更改该文本,它将自动更新表单输入的工作表上的所有引用 现在,我可以通过遍历指定的范围,并使用.AddItem为其提供文本值来获得命名的范围以填充组合框,但它只是将该文本值转储到我的电子表格中,相反,我希望它具有填充它的区域中的单元格引用。最简单的方法是创建一个数组(X,2)X作为数组中的项数。然后将要在数组(1,1)中显示的字符串

我试图用命名范围填充VBA userform组合框,我希望文本值显示在组合框中供用户选择,但我希望返回的值是对初始命名范围的单元格引用。这样,它将指向指定的范围,如果我更改该文本,它将自动更新表单输入的工作表上的所有引用


现在,我可以通过遍历指定的范围,并使用.AddItem为其提供文本值来获得命名的范围以填充组合框,但它只是将该文本值转储到我的电子表格中,相反,我希望它具有填充它的区域中的单元格引用。

最简单的方法是创建一个数组(X,2)X作为数组中的项数。然后将要在数组(1,1)中显示的字符串和要在数组(1,2)中显示的数据放在一起,然后像正常情况一样简单地填充组合框。当您选择并使用数组引用他们选择的项目时。他们选择项目8,你知道它是数组(8,2),如果你需要更多帮助,请发布一些代码。

因此,经过更多研究,我似乎无法直接使用组合框实现我想要的功能。最后我只是在这个范围内循环,用文本值填充组合框,然后当我提交表单时,我循环了相同的值范围,检查提交的值是否与值范围内的值匹配,如果匹配,则返回.Address而不是.value,这给了我想要的手机号码。糟糕的是,combobox没有像真正的html选择菜单那样工作,它会让我的生活变得更轻松,但最终我能够让它工作,它并不像我希望的那样干净。

你可以创建一个带有两个字符串属性的“StringPair”类;1是显示名称,1是单元格引用。然后创建一个字符串对集合,并将显示名称用作键。然后将所有键/显示名称添加到组合框,然后使用选择在集合中查找。