Re: Array of UDT



XL version - 2003 (11.5612.5606) Part of Microsoft Office Professional
Edition 2003
VBA - Micorsoft Visual Basic 6.3

The function is in a normal module.

I have written this piece of code. I also have the function for
GetReaderRecord in the same module. If I change the return value to just
reader and not reader()
and assign the return value as
GetReaderRecordsArray = u_readers(1)
the function works fine and returns the correct value. Also in break mode I
can see not all the items in the array.

Question is - why does it fail when I change the return value to an array?

"Tushar Mehta" wrote:

You still haven't answered the first question.

Also, where -- what kind of module(s), that is -- do you have all this code?

And, did you write the code or did you get it from somewhere else?

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article <445EC327-4FAA-4D3F-A1D4-02B3EAAE7DBE@xxxxxxxxxxxxx>,
justahelper@xxxxxxxxxxxxxxxxxxxxxxxxx says...
I changed it as suggested. It gives the error:

Only user-defined types defined in public object modules can be coerced to
or from a variant or passed to late-bound functions.

"Tushar Mehta" wrote:

What version of XL / VBA are you using?

Does the compiler highlight a particular line as the offending line?

At the very least you should change the return type of the function from
readers() to reader()

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article <A5859C76-32E3-4C58-9108-7159A8E62DA7@xxxxxxxxxxxxx>,
justahelper@xxxxxxxxxxxxxxxxxxxxxxxxx says...
I have defined the following:
Type reader
r_sname As String
r_name As String
r_restel As String
r_offtel As String
r_mobile As String
End Type

and am trying to use it in the following function:

Function GetReaderRecordsArray(rngTimeCell As Range) As readers()
Dim rngCommRng As Range
Dim u_readers() As reader
Dim bCommArr() As Boolean
Dim i As Integer
Dim j As Integer
Dim c_comm As Integer

Set rngCommRng = GetCommitRng(rngTimeCell)
bCommArr = GetCommFromCommitRng(rngCommRng)
c_comm = GetYesCountFromCommRng(bCommArr)

If c_comm > 0 Then
ReDim u_readers(c_comm)

i = 0

For j = LBound(bCommArr) To UBound(bCommArr)
If bCommArr(j) Then
i = i + 1
u_readers(i) = GetReaderRecord(rngCommRng.Cells(j, 1))
Else
End If
Next j
End If
GetReaderRecordsArray = u_readers

End Function

I get a compile error msg. Can anyone help me fix this?





.



Relevant Pages