如何从sheet中select特定列并显示在excelvba列表框中

How to select specific column from the sheet and display in the excel vba list box

Private Sub UserForm_Activate()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Data")
Dim lastRow As Long
idRow = sh.Range("A" & Rows.Count).End(xlUp).Row
questionRow = sh.Range("G" & Rows.Count).End(xlUp).Row
ThisWorkbook.Names.Add Name:="ID", RefersToLocal:=sh.Range("A2:B" & idRow)
ThisWorkbook.Names.Add Name:="Question", RefersToLocal:=sh.Range("G2:L" & questionRow)
With Me.listBox2
    .ColumnHeads = True
    .ColumnCount = 8
    .ColumnWidths = "30,85,85,85,85,85,85,85"
    .RowSource = "ID"
    .RowSource = "Question"
    End With
End Sub

此代码仅使用问题数据填充列表框。激活表单时如何用“ID”和“问题”填充列表框?请帮忙!

第二个 .RowSource = 将覆盖第一个。所以要么你用 VBA 手动填充列表框(不使用 .RowSource,你会找到相关的教程)或者你获取 IDQuestion 之间的所有列,但是你如果它们不连续,则不能同时拥有两列。

尝试 .RowSource = "ID:Question" 这将获取从 IDQuestion 的所有列。请注意,您可以通过将 .ColumnWidths 更改为 0 来隐藏列。例如 .ColumnWidths = "30,0,40,50" 将显示 3 行,因为第二行宽度为 0 且隐藏。