我想给Listbox添加更多的列必须在RowSource中更改某些内容?
如果是放数组的东西,但我没有做
Sub preencherListBox()
Dim ultimaLinha As Long
Dim linha As Integer
'retorna ao valor ultima linha preenchida
ultimaLinha = Folha1.Range("A100000").End(xlUp).Row
'percorre da segunda linha até a última linha e atribui o valor da primeira e segunda coluna
For linha = 2 To ultimaLinha
Visualizar.ListBox1.AddItem Folha1.Range("A" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 1) = Folha1.Range("B" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 2) = Folha1.Range("C" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 3) = Folha1.Range("D" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 4) = Folha1.Range("E" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 5) = Folha1.Range("F" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 6) = Folha1.Range("G" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 7) = Folha1.Range("H" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 8) = Folha1.Range("I" & linha)
Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 9) = Folha1.Range("J" & linha)
'Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 10) = Folha1.Range("K" & linha)
'Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 11) = Folha1.Range("L" & linha)
'Visualizar.ListBox1.List(Visualizar.ListBox1.ListCount - 1, 12) = Folha1.Range("M" & linha)
Next
End Sub
如果列表框有超过9列,则不能使用AddItem,请将列表框的数据放入数组并使用List。
Option Explicit
Sub preencherListBox()
Dim arrData As Variant
Dim ultimaLinha As Long
Dim linha As Integer
'retorna ao valor ultima linha preenchida
ultimaLinha = folha1.Range("A100000").End(xlUp).Row
arrData = folha1.Range("A2:M" & ultimaLinha).Value
With Visualizar.ListBox1
.ColumnCount = 13
.List = arrData
End With
End Sub
A)一般
- 一个(listbox)控件绑定到data不接受
AddItem
方法,即AddItem
失败并引发运行时错误70。
所以有必要在
- a)手动或通过代码分配或 更改
- b)通过array或
AddItem
赋值给array list属性。
RowSource
属性B)如果没有绑定RowSource, @Norie的语句(尽管指向正确的方向)需要添加一些内容
"如果列表框的列数超过9列,则不能使用
AddItem
。">
- 默认使用
AddItem
只提供10列(从零开始的列表列索引范围从0到9)。 - 请注意,与将整个数据字段数组分配给列表框的
.List
属性相比,.AddItem
循环遍历给定范围内的每个单元格是非常耗时的。 - 通过空列表赋值和最终的行删除来初始化列表框实际上将允许以后的
AddItem
执行填充超过10列:
的
Private Sub UserForm_Initialize()
With Me.ListBox1
ReDim tmp(0 To 0, 0 To 11)
.List = tmp
.ColumnCount = 12
.ColumnWidths = "30;30;;;;;;;;40;41;42"
.RemoveItem 0
.AddItem "one"
.List(.ListCount - 1, 1) = "two"
.List(.ListCount - 1, 10) = "eleven"
.List(.ListCount - 1, 11) = "twelve"
End With
End Sub