Range to Array
In your second example you are trying to assign a single value to an
undimensioned variant array, it will fail.
Declare ' v ' without the brackets, then it can accept either a single value
or an array of values. You could test IsArray(v) or r.count 1.
If you need ' v ' to be a 2d array for consistency you could do this
(untested)
Sub qwerty3()
Dim r As Range
Dim v() ' redundant
Set r = Range("A1:g2")
With r
ReDim v(1 To .Rows.Count, 1 To .Columns.Count)
End With
If r.Count = 1 Then
v(1, 1) = r.Value
Else
v = r.Value
End If
Debug.Print UBound(v), UBound(v, 2)
End Sub
Regards,
Peter T
"Gary''s Student" wrote in message
...
Why does:
Sub qwerty()
Dim r As Range
Dim v()
Set r = Range("A1:A2")
v = r.Value
End Sub
work just fine, but:
Sub qwerty()
Dim r As Range
Dim v()
Set r = Range("A1:A1")
v = r.Value
End Sub
raise a type mismatch error?
--
Gary''s Student - gsnu200727
|