将数据从列拖到列表框
我有2张(Sheet1,Sheet2),其中包含不同的数据。 在VBA中,我有2个列表框,一个用于显示列A(Sheet1),另一个用于显示列A(Sheet2)。 当我执行我的编码时,listbox1和listbox2继续分别显示ActiveSheet列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
当你说Sheets("Sheet1").Range("A:A").Address
和Sheets("Sheet2").Range("A:A").Address
,总会给你$A:$A
它会参考activesheet。
试试这个
.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"
顺便说一句,我build议find列的最后一行使用THIS ,然后创build您的.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