ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   subs or functions with user defined types (https://www.excelbanter.com/excel-programming/354393-subs-functions-user-defined-types.html)

Ray Pixley

subs or functions with user defined types
 
I've been trying to call a subroutine where the parameters include a user
defined type without success.
Pseudo-code of what I'm trying to do is as follows:

type typArr
key as long: dat as string
end type
dim arr() as typArr
Sub main()
dim point as long
point=add (this, arr(), arr().key)
arr(point).dat= ..... (to finish adding other data items)
end sub
function add( This as variant, ToThis() as ???, Key as ???) as long
( find where to insert and return location, includes shifting data in
ToThis() )
redim preserve tothis(1 to newcount) (if need more arr())
end function

How do I do this? (I eventually want to make the add() function as part of a
class)





Tim Barlow

subs or functions with user defined types
 
I think this is causing the problem:
arr().key

You can pass the entire array across, but you can't have 'arr().key'

Try something like:

point = add("something", 123, arr())

with

Function add(this As Variant, aKey As Long, toThis() As typArr) As Long


HTH

Tim

"Ray Pixley" wrote in message
news:oG1Mf.772$FE2.347@trnddc01...
I've been trying to call a subroutine where the parameters include a user
defined type without success.
Pseudo-code of what I'm trying to do is as follows:

type typArr
key as long: dat as string
end type
dim arr() as typArr
Sub main()
dim point as long
point=add (this, arr(), arr().key)
arr(point).dat= ..... (to finish adding other data items)
end sub
function add( This as variant, ToThis() as ???, Key as ???) as long
( find where to insert and return location, includes shifting data in
ToThis() )
redim preserve tothis(1 to newcount) (if need more arr())
end function

How do I do this? (I eventually want to make the add() function as part of

a
class)







Ray Pixley

subs or functions with user defined types
 
Close and thoughtful, but I may have oversimplified what I want to do. I
should have used "Insert" instead of "Add" as a subroutine name (symantics).
But the other problem is I'd like to use the same subroutine with other
typArrs that have a different data structure, but have at least a "key"
member, so as to reduce the amount of nearly duplicate code that I'm dealing
with. Also, the key may not always be a long, it may be a string, and I'd
like the option of mindlessly using either type just in that subroutine call
without having to disable Option Explicit.

"Tim Barlow" wrote in message
...
I think this is causing the problem:
arr().key

You can pass the entire array across, but you can't have 'arr().key' Try
something like:

point = add("something", 123, arr()) with
Function add(this As Variant, aKey As Long, toThis() As typArr) As Long

HTH

Tim

"Ray Pixley" wrote in message
news:oG1Mf.772$FE2.347@trnddc01...
I've been trying to call a subroutine where the parameters include a user
defined type without success.
Pseudo-code of what I'm trying to do is as follows:

type typArr
key as long: dat as string
end type
dim arr() as typArr
Sub main()
dim point as long
point=add (this, arr(), arr().key)
arr(point).dat= ..... (to finish adding other data items)
end sub
function add( This as variant, ToThis() as ???, Key as ???) as long
( find where to insert and return location, includes shifting data in
ToThis() )
redim preserve tothis(1 to newcount) (if need more arr())
end function

How do I do this? (I eventually want to make the add() function as part
of

a
class)










All times are GMT +1. The time now is 08:41 AM.

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