这是我的代码:
Function test(data As Range)
Const nobs As Integer = data.Columns.Count
'Const nobs As Integer = 2 <- this one works, but not dynamic
Dim AMatrix(1 To nobs, 1 To nobs) As Variant
End Function
Dim
的参数中需要一个恒定值。我该如何使用动态变化的 nobs 变量?
答案 0 :(得分:3)
您必须使用ReDim statement,并且Nobs
必须是变量而不是常量。
Dim Nobs As Long
Nobs = Data.Columns.Count
ReDim AMatrix(1 To Nobs, 1 To Nobs) As Variant
请注意,Columns.Count
返回的是Long
,而不是Integer
。
还请注意,您的Function
应该返回一个值,或者应将其切换到过程Sub
。