How to return Array() to range as variable?
"Per Jessen" wrote:
The rng is implicit declared as a Variant, so the array
is just assigned to the rng variable.
To make the it work declare rng as Range, or use rng.Value
Oh, I think I understand now. Let me parrot it back to see if I got it now.
When I declared it as Variant (implicitly) and assigned a Range to it, I
made the object type Range, as intended.
But by assigning Array subsequently, VBA interpreted that as if I intended
to change the object type.
By using ".Value", I am clearly telling VBA that I want to treat the object
as Range. (Well, it is telling VBA that I want to use the current
variable's type, which I hope has a member Value.)
But it sounds like it is better practice for me to declare rng as Range,
since that it is my intent.
Thanks to all who responded.
----- original message -----
"Per Jessen" wrote in message
...
Hi
The rng is implicit declared as a Variant, so the array is just
assigned to the rng variable.
To make the it work declare rng as Range, or use rng.Value=Array(...).
Using both will also work.
Sub testit()
Dim rng as Range
Set rng = Range("b2:d2")
rng.Value = Array(21, 22, 23)
End Sub
Hopes this helps.
---
Per
On 6 Maj, 22:14, "JoeU2004" wrote:
The following does what I want:
Sub testit()
Range("b2:d2") = Array(21, 22, 23)
End Sub
But I would prefer to use a variable instead of Range("b2:d2"). (Part of a
larger macro.)
Why doesn't the following work? More importantly, how can I make it work?
Sub testit()
Dim rng
Set rng = Range("b2:d2")
rng = Array(21, 22, 23)
End Sub
|