在VBA中填充列表框时将选定行显示为列

在VBA中填充列表框时将选定行显示为列,vba,excel,listbox,Vba,Excel,Listbox,我试图用Excel中的一系列单元格填充列表框 我的数据集的类别(大约120个)比实际数据(大约25个)多得多,因此我选择按行列出类别,并在每列中列出实际数据。这样我就不必左右滚动那么多,只需上下滚动即可 我希望能够制作一个列表框,该列表框将“仅某些选定行”(例如第2、5、6行)显示为列表框中的列,并将其相应的数据显示为列表框中的行 这可能吗?试试看。当然,根据需要进行修改: Sub FillListBox() Dim a() As Variant a = Range("A1:D4

我试图用Excel中的一系列单元格填充列表框

我的数据集的类别(大约120个)比实际数据(大约25个)多得多,因此我选择按行列出类别,并在每列中列出实际数据。这样我就不必左右滚动那么多,只需上下滚动即可

我希望能够制作一个列表框,该列表框将“仅某些选定行”(例如第2、5、6行)显示为列表框中的列,并将其相应的数据显示为列表框中的行


这可能吗?

试试看。当然,根据需要进行修改:

Sub FillListBox()
    Dim a() As Variant
    a = Range("A1:D4")

    'Test work area is range("A1:D4")
    'on Sheet1
    'Sheet1 has a Listbox named "ListBox1"

    With Sheets(1).ListBox1
        .ColumnCount = 3    ' set the number of columns in the Listbox
        .List = Application.Index(Application.Transpose(a), _
                   Application.Evaluate( _
                   "Row(1:" & UBound(a) & ")"), Array(1, 3, 4))
        'Array(1, 3, 4)just above are the three rows to put into the
        'listbox
    End With
End Sub

好吧,要么我不应该回答这个问题,要么你的描述中有行和列混淆了。看起来您的工作表向下大约有120个值(数据行),跨(数据列)大约有25个值,对吗?