在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}}
答案 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