我可以为两个不同表格的组合框提供行源吗?

时间:2013-08-27 19:39:58

标签: excel excel-vba combobox vba


我有一个组合框,其值可以是A型或B型。对于键入它的用户来说并不重要,但值来自不同的表。

我不能在不同的工作表中使用Union作为两个范围,所以我不能将联合设置为行数源。

是否有办法在组合框中同时使用这两个范围,而不将它们放在同一张纸上?

2 个答案:

答案 0 :(得分:3)

由于您使用了术语RowSource,我猜这是UserForm上的ComboBox。如果是这样,请使用.List属性,如下所示:

Private Sub UserForm_Initialize()

    Me.ComboBox1.List = Array(Sheets("Sheet1").Range("A1").Text, Sheets("Sheet2").Range("A1").Text)

End Sub

稍微更具可读性:

Private Sub UserForm_Initialize()

    Me.ComboBox1.List = Array(Sheets("Sheet1").Range("A1").Text, _
                              Sheets("Sheet2").Range("A1").Text)

End Sub

答案 1 :(得分:2)

我解决了它循环遍历范围并单独添加每个项目。

Dim rango1 As Range, rango2 As Range
Set rango1 = Sheets("1").Range("A1:A100")
Set rango2 = Sheets("2").Range("A1:A100")

For Each cell In rango1
    ComboBox1.AddItem cell.Text
Next
For Each cell In rango2
    ComboBox1.AddItem cell.Text
Next