Excel 2003combobox/validation数据列表值和标签

我无法find这些信息:是否有可能在这两种列表中显示标签,而不是真正的值? 当然当select标签时,单元格或combobox(作为Form控件)的值将获得实际值。

示例:*数据产品A <——> 10产品B <——> 11产品C <——> 22

Combobox显示:产品A,产品B和产品C如果我selectAI获得10值,B 11值和C 22值

先谢谢你

Miloud B.

这样做的典型方法是有一个查找表。 有一个名为VLOOKUP的函数(这是一个部分名称),您可以在公式中使用它来检索值。 在我的工作中,我做了这样的事情,我在一个单独的电子表格中创build了一个查找表,然后在我的主表单中调用查找函数。

你也可以使用macros,但是对于目前的问题来说,这太麻烦了。

数据validation :每行不能有两个值。 您可以使用查找表将一个值转换为另一个值。 或者,您可以结合“ProductA_10”这样的值,并使用公式在需要的地方提取“10”。

表单combobox :这也是有限的select,并没有真正提供任何比DV更为你想要的东西。

工具箱Combobox :这可以做任何你想要的。 您可以将ColumnCount属性设置为2,将BoundColumn属性设置为2,将ColumnWidths属性设置为“1; 0”以隐藏第二列。 如果我在B1:B3的A1:A3和10-12中有ProductA-C,那么我会在标准模块中使用这样的代码来填充combobox

Sub LoadCombobox() Dim rCell As Range For Each rCell In Sheet1.Range("A1:A3").Cells Sheet1.ComboBox1.AddItem rCell.Value Sheet1.ComboBox1.List(Sheet1.ComboBox1.ListCount - 1, 1) = rCell.Offset(0, 1).Value Next rCell End Sub 

而且在工作表模块中这样的代码将一个值放入一个单元格(在这个例子中是F1)

 Private Sub ComboBox1_Change() Me.Range("F1").Value = Me.ComboBox1.Value End Sub 

只要select了combobox中的新值,就更新F1。 我们可以使用combobox的Value属性,因为我们将BoundColumn属性设置为具有所需值的列。