VBA 从包含标题的多个列表框创建矩阵

VBA 从包含标题的多个列表框创建矩阵

我有一个 ListBox,里面有一些列名,我想建立一个只包含选定列的矩阵。有没有简单的方法可以做到这一点?

我实际上正在尝试:

Dim Matrix_a() As Variant
J = 0

For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) Then
       J = J + 1
       Matrix_a.Columns(J) = Price.Columns(i)
    End If
Next i

其中“价格”是先前定义的范围。由于“限定符不正确”,这不起作用,但我不知道如何绕过它(我的 VBA 水平很低)。

我是否遗漏了什么?

答案1

这里有很多问题:

  1. 由于您已将其声明Matrix_a为动态数组,因此在使用之前需要对其进行尺寸标注
  2. 你不需要.Columns参考Matrix_a
  3. ListBox 属性是Column,不是Columns
  4. ListBoxSelected属性适用于行,而不是列

使数组变暗

'Declaration
Dim Matrix_a() As Variant

' Set a size
Redim Matrix_a(0 to 1, 0 to 1)

' Resize, keeping any existing data intact
Redim Preserve Matrix_a(0 to 1, 0 to 2)

' you can use variables
i = 3
Redim Preserve Matrix_a(0 to 1, 0 to i)

' Note: you can only change the last dimenstion with Preserve
' Having declared (0 to 1, 0 to 1), this won't work:
Redim Preserve Matrix_a(0 to 2, 0 to 1)

相关内容