ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Need help passing an array as an argument (https://www.excelbanter.com/excel-programming/305785-need-help-passing-array-argument.html)

blc[_3_]

Need help passing an array as an argument
 
Hello all,

I wanted to ask for some quick help. For the life of me I cannot figure out why the following code will not work... Any hints/comments?

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''
'In a class module written in VB6 I have the following paired property procedure

Public Property Get SomeArray( ) As String( )

SomeArray = mstrHiddenArray

End Property

Public Property Let SomeArray(ByRef TempArray( ) As String)

mstrHiddenArray = TempArray

End Property
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

'Inside an Excel VBA module I call the above property procedu

Call MyObject.SomeArray(gstrGlobalArray)

'Note: gstrGlobalArray is a TWO-dimensional string array...

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

In the Excel VBA module where I invoke the property procedure I get an "Invalid Use of Property" error message... What do you think? Forget programming & get another career??? lol

Anyways, anything anybody could contribute would be helpful...

Thanks,

blc

Tom Ogilvy

Need help passing an array as an argument
 
Only a variant can hold an array. If you dim somearray as a string array,
then I wouldn't think you could assign another array to it.

--
Regards,
Tom Ogilvy



"blc" wrote in message
...
Hello all,

I wanted to ask for some quick help. For the life of me I cannot figure

out why the following code will not work... Any hints/comments?

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''
'In a class module written in VB6 I have the following paired property

procedure

Public Property Get SomeArray( ) As String( )

SomeArray = mstrHiddenArray

End Property

Public Property Let SomeArray(ByRef TempArray( ) As String)

mstrHiddenArray = TempArray

End Property
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

'Inside an Excel VBA module I call the above property procedu

Call MyObject.SomeArray(gstrGlobalArray)

'Note: gstrGlobalArray is a TWO-dimensional string array...

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

In the Excel VBA module where I invoke the property procedure I get an

"Invalid Use of Property" error message... What do you think? Forget
programming & get another career??? lol

Anyways, anything anybody could contribute would be helpful...

Thanks,

blc




Tom Ogilvy

Need help passing an array as an argument
 
This works (in Excel) - you can experiment with this and see if you can get
a specific solution:

In Module:

Sub Tester1()
Dim myobj As pTest
Dim varr(1 To 2, 1 To 2) As String
varr(1, 1) = "ABC"
varr(2, 1) = "DEF"
varr(1, 2) = "GHI"
varr(2, 2) = "JKL"
Set myobj = New pTest
myobj.SomeArray = varr
varr1 = myobj.SomeArray
For i = LBound(varr1, 1) To UBound(varr1, 1)
For j = LBound(varr1, 2) To UBound(varr, 2)
Debug.Print i, j, varr1(i, j)
Next
Next
End Sub

in Class Module

Private mstrHiddenArray As Variant
Public Property Get SomeArray()

SomeArray = mstrHiddenArray

End Property

Public Property Let SomeArray(ByRef TempArray)

mstrHiddenArray = TempArray

End Property

--
Regards,
Tom Ogilvy



"Tom Ogilvy" wrote in message
...
Only a variant can hold an array. If you dim somearray as a string array,
then I wouldn't think you could assign another array to it.

--
Regards,
Tom Ogilvy



"blc" wrote in message
...
Hello all,

I wanted to ask for some quick help. For the life of me I cannot figure

out why the following code will not work... Any hints/comments?

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''
'In a class module written in VB6 I have the following paired property

procedure

Public Property Get SomeArray( ) As String( )

SomeArray = mstrHiddenArray

End Property

Public Property Let SomeArray(ByRef TempArray( ) As String)

mstrHiddenArray = TempArray

End Property
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

'Inside an Excel VBA module I call the above property procedu

Call MyObject.SomeArray(gstrGlobalArray)

'Note: gstrGlobalArray is a TWO-dimensional string array...

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

In the Excel VBA module where I invoke the property procedure I get an

"Invalid Use of Property" error message... What do you think? Forget
programming & get another career??? lol

Anyways, anything anybody could contribute would be helpful...

Thanks,

blc






blc[_3_]

Need help passing an array as an argument
 
Thank you Tom, I will give it a try.

Thanks again,

blc


"Tom Ogilvy" wrote:

This works (in Excel) - you can experiment with this and see if you can get
a specific solution:

In Module:

Sub Tester1()
Dim myobj As pTest
Dim varr(1 To 2, 1 To 2) As String
varr(1, 1) = "ABC"
varr(2, 1) = "DEF"
varr(1, 2) = "GHI"
varr(2, 2) = "JKL"
Set myobj = New pTest
myobj.SomeArray = varr
varr1 = myobj.SomeArray
For i = LBound(varr1, 1) To UBound(varr1, 1)
For j = LBound(varr1, 2) To UBound(varr, 2)
Debug.Print i, j, varr1(i, j)
Next
Next
End Sub

in Class Module

Private mstrHiddenArray As Variant
Public Property Get SomeArray()

SomeArray = mstrHiddenArray

End Property

Public Property Let SomeArray(ByRef TempArray)

mstrHiddenArray = TempArray

End Property

--
Regards,
Tom Ogilvy



"Tom Ogilvy" wrote in message
...
Only a variant can hold an array. If you dim somearray as a string array,
then I wouldn't think you could assign another array to it.

--
Regards,
Tom Ogilvy



"blc" wrote in message
...
Hello all,

I wanted to ask for some quick help. For the life of me I cannot figure

out why the following code will not work... Any hints/comments?

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''
'In a class module written in VB6 I have the following paired property

procedure

Public Property Get SomeArray( ) As String( )

SomeArray = mstrHiddenArray

End Property

Public Property Let SomeArray(ByRef TempArray( ) As String)

mstrHiddenArray = TempArray

End Property
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

'Inside an Excel VBA module I call the above property procedu

Call MyObject.SomeArray(gstrGlobalArray)

'Note: gstrGlobalArray is a TWO-dimensional string array...

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''

In the Excel VBA module where I invoke the property procedure I get an

"Invalid Use of Property" error message... What do you think? Forget
programming & get another career??? lol

Anyways, anything anybody could contribute would be helpful...

Thanks,

blc








All times are GMT +1. The time now is 11:35 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com