在VBA中创建(硬编码)矩阵作为数组

时间:2016-11-10 09:23:51

标签: arrays vba matrix

在VBA中我们可以使用Array()来创建一个向量(1D数组), 例如。 Vector = Array(1,2,3)

我们如何创建2x3矩阵?怎么会是3x2? 例如。 Matrix = Array(1,2,3;4,6,7)

由于

尝试

下面的方法一是解决方案,尽管很麻烦。有没有灵活/更大的阵列?

Option Explicit 1

Private Sub MatrixDemo()
  Dim arr(2,3) as Variant   ' Which has 2 rows and 3 columns       
  arr(1,1) = 1          
  arr(1,2) = 2          
  arr(1,3) = 3                      
  arr(2,1) = 4           
  arr(2,2) = 5             
  arr(2,3) = 6           
End Sub

方法2更灵活,但我必须设置逗号来定义维度。我们可以动态运行吗?

Dim matrix = New Integer(2, 3) {{1, 2}, {3, 4}, {6, 7}}

1 个答案:

答案 0 :(得分:2)

此函数将返回所需的矩阵。

只需将您需要的行和列传递给Create_Matrix(3, 2),它将以递增的值重新启动数组。

Function Create_Matrix(x As Long, y As Long) As Variant

    Dim Arr() As Variant ' Matrix array
    Dim i As Long ' rows
    Dim j As Long ' columns
    Dim k As Long ' increment counter


    ReDim Arr(1 To y, 1 To x)

    For i = 1 To y

        For j = 1 To x

            k = k + 1

            Arr(i, j) = k

        Next j ' next column


    Next i ' next row


    Create_Matrix = Arr

End Function

您的数组应首先声明为Variant