【发布时间】:2019-11-06 09:18:30
【问题描述】:
我正在尝试动态生成列表框(当前在用户窗体中)(取决于源工作表中使用的列)并用这些所属列的条目填充它们。
例如:
A 列有以下条目(每行一个):Apple、Banana、Peach
B 列有:蓝色、绿色、红色
用户窗体应生成两个列表框(一个用于 A 列,一个用于 B 列)并用这些列的相应条目填充它们。
我尝试循环遍历列表框,但我不断收到错误,因为我无法弄清楚如何正确获取语法。变量Lastrow 为我提供了一列中非空单元格的数量并正确运行(未显示代码以便更好地查看相关代码。
我是这样生成列表框的:
Dim i As Integer
For i = 1 To 21
Set LstBx = UserForm1.Controls.Add("Forms.Listbox.1", Name:="Listbox" & i)
Next i
填充列表框对我来说似乎更难:
Dim i As Integer
Dim LB As String
Dim cell As Range
For i = 1 To 21
For Each cell In SourceSheet.Range(Cells(1, i), Cells(LastRow, i)).Cells
LB = "Listbox" + i
LB.AddItem cell.Value
Next cell
以下结合了生成和人口,是我正在尝试修复的实际代码:
Dim i As Integer
Dim LB As String
Dim cell As Range
For i = 1 To 21
'Generate
Set LstBx = UserForm1.Controls.Add("Forms.Listbox.1", Name:="Listbox" & i)
'Populate
For Each cell In SourceSheet.Range(Cells(1, i), Cells(LastRow, i)).Cells
LB = "Listbox" + i
'the following is the crucial part I am losing hope on:
'It seems that it is not possible to address Listboxes this way but i cant find another way:
LB.AddItem cell.Value
Next cell
我期望根据列的动态数量生成和填充 ListBox。但是我特别在循环时将项目添加到正确的 ListBox 中。最后,我的目标只是将所有列和相应条目转移到有关动态列和行范围的列表框中。
【问题讨论】:
标签: excel vba listbox populate