Excel中的ComboBox返回值,而不是索引

时间:2015-03-16 00:52:23

标签: excel vba combobox

我在Sheet1中有一系列重复日期!$ A:$ A.这些我作为唯一项添加到组合框(cb)与VBA。不幸的是,当我选择一个项目(cb中的日期)时,项目的索引将返回到链接的单元格中。 有没有办法返回日期而不是索引,或者将cb填充为项目对(日期,日期)?

     A         B     C    ____D_________
1   date      val1 val2  |03/09/2015 |V |
2 03/08/2015   13   2.4  |          __|_ |
3 03/08/2015   17   4.6
4 03/08/2015   11   2.5
5 03/09/2015    9   1.5
6 03/10/2015    4   3.2
7 03/10/2015   12   3.4

在上面的示例中,我的cb将在D1中返回2(这是底层的链接单元格),但我希望返回日期。有没有"简单"如何实现这个目标?

这似乎不起作用:

With wsSheet2.Shapes("DatePick").ControlFormat
  .RemoveAllItems
  For Each vaItem In ncData
    .AddItem vaItem, vaItem  '<--- add an item pair
  Next vaItem
End With

由于

2 个答案:

答案 0 :(得分:0)

您可以将格式控制选项中的“单元格链接”更改为D1,然后在单元格D2中更改:

=INDEX($A:$A,D1+1)

答案 1 :(得分:0)

试试这个:

Sub TransferValue()
    Dim dd As DropDown, linkedcell As String
    linkedcell = Sheet1.Shapes("Drop Down 1").ControlFormat.linkedcell
    Set dd = Sheet1.Shapes("Drop Down 1").OLEFormat.Object
    Sheet1.Range(linkedcell) = dd.List(dd.Value)
End Sub

我认为您使用的是Form Control,因为您有LinkedCell 所以这基本上得到了LinkedCell地址,因此您可以使用相同的地址进行输出 然后,您获取ComboBoxDropDown Object的值,并将其传递给LinkedCell地址。您只需将此分配给ComboBox即可。 HTH。