VBA如何为ListBox添加更多列 是否需要修改RowSource属性
VBA ListBox新增列问题解答
你当前使用的是AddItem逐行赋值的方式填充ListBox,没有用到RowSource绑定数据源,因此不需要修改RowSource的相关配置
要实现新增列需求,只需要做2处调整即可:
- 调整ListBox的
ColumnCount属性:你需要显示多少列,就把该属性设置为对应的数值。比如你要显示A到M列共13列,就把ColumnCount设为13,你可以直接在窗体设计界面的属性面板修改,也可以在填充代码开头加一行Visualizar.ListBox1.ColumnCount = 13 - 取消你代码中注释掉的3行列赋值代码即可,你原本的代码已经写好了K、L、M三列的赋值逻辑,只是处于注释状态,取消注释就能生效
可选优化建议
你当前逐列写赋值语句的方式维护成本较高,可以嵌套一层列循环简化代码,修改后的示例如下:
Sub preencherListBox() Dim ultimaLinha As Long Dim linha As Long Dim col As Integer ' 设置列数,后续加列只要修改这个数值即可 Visualizar.ListBox1.ColumnCount = 13 ultimaLinha = Folha1.Range("A100000").End(xlUp).Row For linha = 2 To ultimaLinha ' 添加第一列内容 Visualizar.ListBox1.AddItem Folha1.Range("A" & linha) ' 循环填充剩余列,列索引从0开始 For col = 1 To Visualizar.ListBox1.ColumnCount - 1 Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, col) = Folha1.Cells(linha, col + 1) Next col Next End Sub
内容的提问来源于stack exchange,提问作者HugTheCode
相关产品推荐
相关产品推荐

