LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,391
Default Returning Multiple Arguments from an Excel VBA Function

Craig,
For brevity I wrote the code as such to show the basic. Actually, you may
want to:

Private Sub CommandButton1_Click()
Dim Answers() as string

Answers=AddressSplit ("qwerty")
'Do what you want with Answers(0), Answers(1),,,Answers(n)
'Maybe
MsgBox Answers(0) & ", " Answers(1)
End Sub

Returning an array, rather than using ByRef argument allows for expansion of
the number of return elements. Whether this is important will depend on what
you trying to achieve.

NickHK

"aussie_craig" wrote in message
...

Thanks Nick.
How do I access the 2 returned values in the Main Routine ?

Can I reference them in the Main Routine by AddressSplit(0) &
AddressSplit(1) and if so do I need to Dim AddressSplit in a particlar
manner in the Main Routine

ie
Private Sub CommandButton1_Click()
MsgBox AddressSplit ("qwerty")(0)
A = AddressSplit(0)
B = AddressSplit(1)
End Sub


NickHK Wrote:
Craig,
You can return an array from a function:

Private Sub CommandButton1_Click()
MsgBox AddressSplit ("qwerty")(0)
End Sub

Private Function AddressSplit (argStr As String) As String()
Dim RetArr(1) As String

RetArr(0) = Left(argStr, 3)
RetArr(1) = Mid(argStr, 4)
AddressSplit = RetArr
End Function



"aussie_craig" wrote in
message
...

Hi Again.
I had such a good response last time I thought I would ask you gurus
another one.

I have written some VBA code to manipulate some strings in a
spreadsheet.
It works well but is getting quite long, and I am beginning to reuse
parts of it. So I thought I would break one part into a function.

I would like to pass 1 string argument to my function, perform some
fairly intensive operations on the string and return with 2 string
arguments.
I think its possible to return with two argumnets - but the syntax

has
thrown me.

I think it has something to do with dimensioning the Function name as

a
Variant or a 2 element array ?

Here's a rough example along the lines of what I want:

Sub Blah()

MyString = "123456"
AddressSplit (MyString)

End Sub

Function AddressSplit (TargetString)
AddressSplit(1) = "Test1"
AddressSplit(2) = "Test2"

End Function


How do I return the 2 arguments to the Main Subroutine so I can use
them ?
Thanks in Advance for any help.


--
aussie_craig

------------------------------------------------------------------------
aussie_craig's Profile:

http://www.excelforum.com/member.php...o&userid=15491
View this thread:

http://www.excelforum.com/showthread...hreadid=271071



--
aussie_craig
------------------------------------------------------------------------
aussie_craig's Profile:

http://www.excelforum.com/member.php...o&userid=15491
View this thread: http://www.excelforum.com/showthread...hreadid=271071



 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
VLOOKUP Function returning multiple values in a separate table CAT Excel Worksheet Functions 8 October 1st 08 02:53 PM
i need help with a function application with multiple arguments tarabull Excel Worksheet Functions 3 November 3rd 07 03:36 AM
Returning Multiple Arguments from an Excel VBA Function aussie_craig[_4_] Excel Programming 2 October 21st 04 05:02 AM
VBA function returning multiple values? DM Excel Programming 9 January 15th 04 05:02 PM
Returning single/multiple values from array function Ryan Poth[_2_] Excel Programming 4 July 16th 03 08:06 AM


All times are GMT +1. The time now is 05:13 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"