Как определить Dim, используя динамические переменные в качестве аргументов в Excel VBA? - PullRequest
0 голосов
/ 29 апреля 2019

Это мой код:

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 Ответ

3 голосов
/ 29 апреля 2019

Вы должны использовать оператор ReDim , и ваш 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...