Excel 2003组合框/验证数据列表值和标签

时间:2011-01-17 16:17:50

标签: excel ms-office excel-2003 office-2003

我无法找到这些信息:是否可以在这两种类型的列表中显示标签而不是实际值?当然,当选择标签时,单元格或组合框的值(作为Form控件)将获得实际值。

实施例: *数据 产品A< ------> 10 产品B< ------> 11 产品C< ------> 22

Combobox显示:产品A,产品B和产品C. 如果我选择A,我得到10值,B得到11值,C得到22值

提前谢谢

Miloud B。

2 个答案:

答案 0 :(得分:2)

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

你也可以使用宏,但是对于当前的问题,我觉得这太麻烦了。

答案 1 :(得分:1)

数据验证:每行不能有两个值。您可以使用查找表将一个值转换为另一个值。或者您可以组合像“ProductA_10”这样的值,并使用公式将“10”提取到您需要的位置。

表格Combobox :这也有限的选项,并没有提供比DV更多的东西。

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

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

每当选择组合框中的新值时,F1都会更新。我们可以使用组合框的Value属性,因为我们将BoundColumn属性设置为具有我们想要的值的列。