Excel 将数据从列拉入列表框

Excel 将数据从列拉入列表框,excel,vba,Excel,Vba,我有两张表(表1,表2),其中包含不同的数据。在VBA中,我有两个列表框,一个用于显示A列(Sheet1),另一个用于显示A列(Sheet2)。当我执行编码时,listbox1和listbox2继续显示ActiveSheet列A的数据,而不是单独显示Sheet1的数据或Sheet2的数据 With ListBox1 .ColumnCount = 3 .ColumnWidths = "50" .RowSource = Sheets("Sheet1").Range("A:A"

我有两张表(表1,表2),其中包含不同的数据。在VBA中,我有两个列表框,一个用于显示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
,并会引用活动表

试试这个

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

类似地,对于列表框2

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


顺便说一句我建议使用查找列的最后一行,然后创建
.RowSource

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

类似地,对于列表框2

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


完成了,也谢谢悉达思的建议。这有什么用呢!在(.RowSource=Sheets(“Sheet2”)。Name&“!”&“A:A”&LRow2)情况下?我在网站上找不到它。请指定
我们告诉excel,
A:A
列在哪里。如果我们不这样做,那么它将假定您的意思是
activesheet
尝试将Sheet1中的一个单元格引用到Sheet2中的另一个单元格。注意公式,您将知道1更多的事情是,如何选择从A2开始到最后一行的行源,而不是A1。尝试时出错。RowSource=Sheets(“Sheet2”)。Name&“!”&“A2:A”&LRow2
.RowSource = Sheets("Sheet2").Name & "!" & _
             Sheets("Sheet2").Range("A1:A" & LRow2).Address
.RowSource = Sheets("Sheet2").Name & "!" & "A:A" & LRow2