0

我无法用某个范围内的选项填充组合框。

用户使用 refedit 选择范围,ComboBox然后必须用所选单元格的值填充。如果用户更改 ref,则必须删除旧数据并用新数据重新填充。

以下是我当前的代码。编译正确,但不起作用。

ComboBox本身并不依附,但我需要用列中的值填充一个列表,以便用户可以选择他们想要用作“键”的那个第一个集合是连续内容的样本. 我希望提供这些选项作为下拉菜单的选项。

您可以在http://ge.tt/2dbV5Yt/v/0?c下载我正在处理的内容的副本

商店# 地址城市 ST 邮编市场半径
Private Sub rngHeader_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim selRng As Range
    Set selRng = Range(rngHeader.Value)

    '//Erase any items that are in there
    For I = 1 To cmbKeyCol.ListCount
        cmbKeyCol.RemoveItem 0 'Remove the top item each time
    Next I


    'Below here is the part that I'm having trouble with. This is one of my attempts, but
       'I've changed this thing probably 20 times since asking the question
    '//Build  new list of items from the header row.
    For Each cell In selRng.Cells
        cmbKeyCol.AddItem cell.Value
    Next
End Sub
4

1 回答 1

0

你为什么不改用这个:

cmbkeyCol.RowSource = selRng.Address 'Assuming you already got your range right.

这将添加指定范围内的所有项目,而不是逐个迭代它们。

编辑1:

Dim list as variant

list = selRng.Value
list = Application.Transpose(list)

cmbkeyCol.List = list

希望这有效。

编辑2:

Dim list as variant

list = rngHeader.value
list = Application.Transpose(list)

cmbkeyCol.List = list

我假设 selRng 是 Edit 1 中的源范围,实际上它是 rngHeader。希望这现在有效。

于 2013-10-01T03:41:11.113 回答