将数据从列拉到列表框

时间:2014-02-17 03:30:01

标签: excel excel-vba vba

我有2张(Sheet1,Sheet2),其中包含不同的数据。在VBA中,我有2个列表框,一个用于显示列A(Sheet1),另一个用于显示列A(Sheet2)。当我执行编码时,listbox1和listbox2会一直显示ActiveSheet Column A的数据,而不是Sheet1的数据或Sheet2的数据。

With ListBox1
    .ColumnCount = 3
    .ColumnWidths = "50"
    .RowSource = Sheets("Sheet1").Range("A:A").Address
End With

With ListBox2
    .ColumnCount = 3
    .ColumnWidths = "50"
    .RowSource = Sheets("Sheet2").Range("A:A").Address
End With

1 个答案:

答案 0 :(得分:0)

当您说Sheets("Sheet1").Range("A:A").AddressSheets("Sheet2").Range("A:A").Address时,它会始终显示$A:$A,并且会引用活动表。

试试这个

.RowSource = Sheets("Sheet1").Name & "!" & _
             Sheets("Sheet1").Range("A:A").Address

.RowSource = Sheets("Sheet1").Name & "!" & "A:A"

同样适用于 Listbox2

.RowSource = Sheets("Sheet2").Name & "!" & _
             Sheets("Sheet2").Range("A:A").Address

.RowSource = Sheets("Sheet2").Name & "!" & "A:A"

BTW 我建议您使用THIS查找列的最后一行,然后创建.RowSource

.RowSource = Sheets("Sheet1").Name & "!" & _
             Sheets("Sheet1").Range("A1:A" & LRow1).Address

.RowSource = Sheets("Sheet1").Name & "!" & "A:A" & LRow1

同样适用于 Listbox2

.RowSource = Sheets("Sheet2").Name & "!" & _
             Sheets("Sheet2").Range("A1:A" & LRow2).Address

.RowSource = Sheets("Sheet2").Name & "!" & "A:A" & LRow2