如何从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
,你会找到相关的教程)或者你获取 ID
和 Question
之间的所有列,但是你如果它们不连续,则不能同时拥有两列。
尝试 .RowSource = "ID:Question"
这将获取从 ID
到 Question
的所有列。请注意,您可以通过将 .ColumnWidths
更改为 0
来隐藏列。例如 .ColumnWidths = "30,0,40,50"
将显示 3 行,因为第二行宽度为 0
且隐藏。
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
,你会找到相关的教程)或者你获取 ID
和 Question
之间的所有列,但是你如果它们不连续,则不能同时拥有两列。
尝试 .RowSource = "ID:Question"
这将获取从 ID
到 Question
的所有列。请注意,您可以通过将 .ColumnWidths
更改为 0
来隐藏列。例如 .ColumnWidths = "30,0,40,50"
将显示 3 行,因为第二行宽度为 0
且隐藏。