Problem with 2-dimensional array
Public Function Addresses()
Dim ol As Object
Dim olns As Object
Dim objFolder As Object
Dim objAllContacts As Object
Dim Contact As Object
Dim MyAddressAs String
Dim ContactArray as Variant
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
Set MyFolder1 = olns.Folders("Public Folders")
Set MyFolder2 = MyFolder1.Folders("All Public Folders")
Set MyFolder3 = MyFolder2.Folders("MyPublicFolder")
Set objAllContacts = MyFolder3.Items
Dim TotalCount, Counter As Long
TotalCount = MyFolder3.Items.Count
Counter = 1
ReDim ContactArray(0 to 1, 0 to counter)
For Each Contact In objAllContacts
ReDim Preserve ContactArray(0 to 1, 0 to Contact)
MyAddress= Contact.BusinessAddressStreet + ", " +
Contact.BusinessAddressPostalCode + " " + Contact.BusinessAddressCity
ContactArray(0, Counter) = Contact.CompanyName
ContactArray(1, Counter) = MyAddress
Counter = Counter + 1
Next Contact
CForm.MyListBox.ColumnCount = 2
CForm.MyListBox.Column = ContactArray
End Function
--
Regards,
Tom Ogilvy
" wrote:
Somehow I don't get it to work.
I want to use an array because I also want to be able to sort the list.
NickHK schreef:
You can only "Preserve" something that you have previously ReDimmed
So
ReDim ContactArray(1, 1) As Variant
ReDim Preserve ContactArray(1, 1) As Variant
But as Tom says, why not populate the list box directly and forget the array
?
NickHK
egroups.com...
This gives me the same error.
Am I missing something here?
NickHK schreef:
Because using Preserve you can only resize the last dimension. (Missed
that
in the post.)
So you would have to rotate your array and use:
ReDim Preserve ContactArray(1,Counter) As Variant
NickHK
groups.com...
If I use:
ReDim Preserve ContactArray(Counter, 1) As Variant
It'll give me an error about non-matching types.
Martin Brader schreef:
You need to add Preserve to your REDIM statement otherwise the array
is
reinitialised everytime you do a REDIM
|