2016-11-10 71 views
0

在VBA我们可以使用阵列()来创建矢量(1D阵列) 例如。 Vector = Array(1,2,3)创建内VBA一个(硬编码)矩阵阵列

我们如何建立一个2×3矩阵?它将如何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}} 
+0

用于填充一个二维数组,您将需要一个循环 –

+0

循环只能如果有一个计算,其中的内容是一个FN(I,J)位置 ?? – rrg

+0

我会建议Microsoft开发人员网络[在VBA中声明数组]的以下文档(https://msdn.microsoft.com/en-us/library/x397t1yt(v = vs.90).aspx) –

回答

2

该函数将返回你想要的矩阵。

只是通过它,你需要Create_Matrix(3, 2)的行和列,它会retrun与递增值的数组。

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

+0

这会创建一个矩阵的连续数字。将给定矩阵维度的向量转换为矩阵,怎么办? – rrg