Когда вы объявляете переменную как Variant, она может быть чем угодно.Это может быть массивом или 2-мерным массивом , но также может быть объектом, строкой или чем-то еще.
Так что, когда вы хотитечтобы быть массивом, вы должны использовать Redim
-команду.Но когда вы нажмете на Redim
в первый раз, у вас еще нет массива, поэтому Ubound
потерпит неудачу (это допустимо только для массивов) - и, поскольку это не массив, сохранить также нечего.
Вы можете решить эту проблему, либо инициализировать массив перед началом реальной работы, либо добавить проверку, если переменная содержит массив
If isArray(arrCurrentDataset) Then
ReDim Preserve arrCurrentDataset(1 to UBound(arrCurrentDataset, 1), 1 to UBound(arrCurrentDataset, 2) + 2)
Else
' You have to make up your mind about the initial size of the array
ReDim arrCurrentDataset(1 to 10, 1 to 10)
End If