View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein \(MVP - VB\)[_2352_] Rick Rothstein \(MVP - VB\)[_2352_] is offline
external usenet poster
 
Posts: 1
Default Assign a single variable to an Array filled with same data typ

Yes!

Either of these will work..

Dim myArray As Variant

or

Dim myArray() As Variant

but the data type of myArray must be a Variant in order for you to be able
to assign the output of the Array function to it.

Rick


"RyanH" wrote in message
...
You have to declare the array as variant, even though all the arguments in
the array have the same data type ( in my case Single)?
--
Cheers,
Ryan


"Rick Rothstein (MVP - VB)" wrote:

First off, the Array function returns an array and, in VB, arrays can
only
be assigned to other arrays if those other arrays were dynamically
declared.
You declared your array as having a fixed number of elements, so the
array
assignment failed. On top of that, the Array function requires its target
to
be a Variant (a variant array is also possible target) where as you tried
specifying it as a Single. The reason a Variant target is required is
because you can put almost anything in the argument list to the Array
function (as long as you remember what is what, of course<g). For
example...

Dim V As Variant
V = Array(123, "Text String", Range("A1"))
MsgBox V(0) & vbCrLf & V(1) & vbCrLf & V(2).Address

Notice that the 3rd element, V(2), is a Range object, so to MessageBox
out
something from it, you need to reference one of its properties. True, I
could have let it use its default Value property, but I wanted to
positively
demonstrate that it was an actual object being stored in the third
element.

Rick


"RyanH" wrote in message
...
Why am I getting this error "Can't Assign To Array" for this code?

Dim myArray(0 To 5) As Single
Dim Var as Single

ERROR = myArray = Array(var1, var2, var3, var4, var5, var6)

For Each Var In myArray
Var = 0
Next Var

but if I code it this way everything works:

Dim myArray As Variant
Dim Var as Variant

ERROR = myArray = Array(var1, var2, var3, var4, var5, var6)

For Each Var In myArray
Var = 0
Next Var

Any help would be great.
--
Cheers,
Ryan