问题
当我尝试使用只有1个“行”的2D数组填充表单ListBox时,它会从数组列值中创建单独的条目。
代码是:
ListBox1.List = Application.Transpose(Application.Transpose([DataA]))
我知道什么
在我的项目中,数据首先从不同来源收集到一个数组中,然后添加到列表框中。
数据的行和列很多,这就是为什么传递数组是将每个条目添加到单独的列表框列的一种更好的方法的原因。性能很重要,因为列表需要经常且快速地更新。
目前,我的解决方法是根据需要将第二行添加到数组中,然后将其直接从列表框中删除。
我想知道的内容
为什么传递1行2d数组时,列表框的行为会有所不同?
示例
填充5行:
填充1行:
第5行和第1行的数据如下:
答案 0 :(得分:1)
您可以先检查是否有一行,然后采取相应措施:
Private Sub CommandButton5_Click()
Dim x
ListBox1.Clear
x = [DataB]
ListBox1.List = IIf(UBound(x, 1) = 1, x, Application.Transpose(x))
TextBox1 = ListBox1.ListCount
End Sub