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属性设置为具有所需值的列。