如何在Excel VBA中使用动态变量作为参数定义Dim?

时间:2019-04-29 08:14:27

标签: excel vba

这是我的代码:

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 变量?

1 个答案:

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