ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Passing arrays to a subroutine (https://www.excelbanter.com/excel-programming/274584-passing-arrays-subroutine.html)

Braden Craig

Passing arrays to a subroutine
 
Hello,

I have a simple question. I would like to know how
to pass an array argument to a subroutine. I would like
to do something like the example below illustrates. (The
syntax for the below example is wrong and does not work
but should show the simple thing I am trying to do.)

I can program a workaround using ParamArray, but I would
prefer not to pass my args in this way. Instead of
listing all the args of my array in the ParamArray, I
would prefer to pack them into an array and pass them to
my subroutine using just the name of the array.

Thanks in advance for any help with this matter.

Braden Craig


Public Sub arrayPass()
Dim argArray(3) As Integer

argArray(0) = 12
argArray(1) = 13
testerSub (argArray)

End Sub


Public Sub testerSub(argArray() As Variant)
Dim test1 As Integer, test2 As Integer

test1 = argArray(0)
test2 = argArray(1)

End Sub

Rob Bovey

Passing arrays to a subroutine
 
Hi Braden,

This works for me:

Public Sub arrayPass()
Dim argArray(3) As Integer
argArray(0) = 12
argArray(1) = 13
testerSub argArray
End Sub

Public Sub testerSub(argArray() As Integer)
Dim test1 As Integer
Dim test2 As Integer
test1 = argArray(0)
test2 = argArray(1)
Debug.Print test1, test2
End Sub

--
Rob Bovey, MCSE, MCSD, Excel MVP
Application Professionals
http://www.appspro.com/

* Please post all replies to this newsgroup *
* I delete all unsolicited e-mail responses *


"Braden Craig" wrote in message
...
Hello,

I have a simple question. I would like to know how
to pass an array argument to a subroutine. I would like
to do something like the example below illustrates. (The
syntax for the below example is wrong and does not work
but should show the simple thing I am trying to do.)

I can program a workaround using ParamArray, but I would
prefer not to pass my args in this way. Instead of
listing all the args of my array in the ParamArray, I
would prefer to pack them into an array and pass them to
my subroutine using just the name of the array.

Thanks in advance for any help with this matter.

Braden Craig


Public Sub arrayPass()
Dim argArray(3) As Integer

argArray(0) = 12
argArray(1) = 13
testerSub (argArray)

End Sub


Public Sub testerSub(argArray() As Variant)
Dim test1 As Integer, test2 As Integer

test1 = argArray(0)
test2 = argArray(1)

End Sub




mrmac

Passing arrays to a subroutine
 
Your code is almost right, the only change I made is I
removed the parenthesis around the argArray argument
array when calling the testerSub procedure.

Public Sub arrayPass()
Dim argArray(3) As Integer

argArray(0) = 12
argArray(1) = 13
testerSub argArray

End Sub


Public Sub testerSub(argArray As Variant)
Dim test1 As Integer, test2 As Integer

test1 = argArray(0)
test2 = argArray(1)

End Sub
-----Original Message-----
Hello,

I have a simple question. I would like to know how
to pass an array argument to a subroutine. I would like
to do something like the example below illustrates.

(The
syntax for the below example is wrong and does not work
but should show the simple thing I am trying to do.)

I can program a workaround using ParamArray, but I would
prefer not to pass my args in this way. Instead of
listing all the args of my array in the ParamArray, I
would prefer to pack them into an array and pass them to
my subroutine using just the name of the array.

Thanks in advance for any help with this matter.

Braden Craig


Public Sub arrayPass()
Dim argArray(3) As Integer

argArray(0) = 12
argArray(1) = 13
testerSub (argArray)

End Sub


Public Sub testerSub(argArray() As Variant)
Dim test1 As Integer, test2 As Integer

test1 = argArray(0)
test2 = argArray(1)

End Sub
.


Tom Ogilvy

Passing arrays to a subroutine
 
This worked fine for me:

Public Sub arrayPass()
Dim argArray(3) As Integer

argArray(0) = 12
argArray(1) = 13
testerSub argArray

End Sub


Public Sub testerSub(argArray() As Integer)
Dim test1 As Integer, test2 As Integer

test1 = argArray(0)
test2 = argArray(1)
Debug.Print test1
Debug.Print test2
End Sub


--
Regards,
Tom Ogilvy

Braden Craig wrote in message
...
Hello,

I have a simple question. I would like to know how
to pass an array argument to a subroutine. I would like
to do something like the example below illustrates. (The
syntax for the below example is wrong and does not work
but should show the simple thing I am trying to do.)

I can program a workaround using ParamArray, but I would
prefer not to pass my args in this way. Instead of
listing all the args of my array in the ParamArray, I
would prefer to pack them into an array and pass them to
my subroutine using just the name of the array.

Thanks in advance for any help with this matter.

Braden Craig


Public Sub arrayPass()
Dim argArray(3) As Integer

argArray(0) = 12
argArray(1) = 13
testerSub (argArray)

End Sub


Public Sub testerSub(argArray() As Variant)
Dim test1 As Integer, test2 As Integer

test1 = argArray(0)
test2 = argArray(1)

End Sub




Alan Beban[_3_]

Passing arrays to a subroutine
 
As does this:

Public Sub arrayPass()
Dim argArray(3) As Integer

argArray(0) = 12
argArray(1) = 13
MsgBox testerSub(argArray)

End Sub


Public Function testerSub(inputArray As Variant)
Dim test1 As Integer, test2 As Integer

test1 = inputArray(0)
test2 = inputArray(1)
testerSub = test1 & " " & test2

End Function

Alan Beban

Rob Bovey wrote:
Hi Braden,

This works for me:

Public Sub arrayPass()
Dim argArray(3) As Integer
argArray(0) = 12
argArray(1) = 13
testerSub argArray
End Sub

Public Sub testerSub(argArray() As Integer)
Dim test1 As Integer
Dim test2 As Integer
test1 = argArray(0)
test2 = argArray(1)
Debug.Print test1, test2
End Sub




All times are GMT +1. The time now is 03:00 AM.

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