Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default PASSING an array to a sub in VBA

I want to pass an array to a subroutine: I tried some
variants such as
Call Output(K()) or
Call Output(K(*)) (used in some forms of HP BASIC),
but could not find one that worked. Any ideas anyone?

This is what I want to do
For t = 1 To NT 'put data in array
For w = 1 To NW
K(t, w) = t * w
Next w
Next t
Call Output_dat(Sheet1, K()) 'pass sheetname & array to sub
'this syntax is not accepted by VBA
End Sub
'
Sub Output_data(Sheet_name, K_temp())
'this sub would allow various versions of K to be output
to various sheets
For t = 1 To NT
For w = 1 To NW
Sheet_name.Cells(1 + w, 1 + t) = K_temp(t, w)
Next w
Next t
End Sub

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 95
Default PASSING an array to a sub in VBA

Try using specific variable types in your array declaration and
the called function definition. For example, the following code
works in Excel 97 and Excel 2003.

Sub AAA()
Dim Arr(1 To 10) As Long
Dim Ndx As Long
For Ndx = 1 To 10
Arr(Ndx) = Ndx * 10
Next Ndx
BBB Arr()
End Sub

Sub BBB(X() As Long)
Dim Ndx As Long
For Ndx = LBound(X) To UBound(X)
Debug.Print X(Ndx)
Next Ndx
End Sub



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


"Wombat" wrote in message
...
I want to pass an array to a subroutine: I tried some
variants such as
Call Output(K()) or
Call Output(K(*)) (used in some forms of HP BASIC),
but could not find one that worked. Any ideas anyone?

This is what I want to do
For t = 1 To NT 'put data in array
For w = 1 To NW
K(t, w) = t * w
Next w
Next t
Call Output_dat(Sheet1, K()) 'pass sheetname & array to sub
'this syntax is not accepted by VBA
End Sub
'
Sub Output_data(Sheet_name, K_temp())
'this sub would allow various versions of K to be output
to various sheets
For t = 1 To NT
For w = 1 To NW
Sheet_name.Cells(1 + w, 1 + t) = K_temp(t, w)
Next w
Next t
End Sub



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 538
Default PASSING an array to a sub in VBA

On Sun, 30 Nov 2003 05:22:33 -0600, Chip Pearson wrote:

Try using specific variable types in your array declaration and
the called function definition. For example, the following code
works in Excel 97 and Excel 2003.

Sub AAA()
Dim Arr(1 To 10) As Long
Dim Ndx As Long
For Ndx = 1 To 10
Arr(Ndx) = Ndx * 10
Next Ndx
BBB Arr()


I don't know about 97 or 2003, but in Excel 2000 the parentheses aren't
necessary - you can do it like this:
BBB Arr
and it works.

End Sub

Sub BBB(X() As Long)
Dim Ndx As Long
For Ndx = LBound(X) To UBound(X)
Debug.Print X(Ndx)
Next Ndx
End Sub


--
auric "underscore" "underscore" "at" hotmail "dot" com
*****
The Toe that can be stubbed is not the true Toe.
Reply
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
Passing string as array variable (Pivot VBA) klingongardener Excel Discussion (Misc queries) 2 December 23rd 06 07:58 PM
meaning of : IF(Switch; Average(array A, array B); array A) DXAT Excel Worksheet Functions 1 October 24th 06 06:11 PM
Passing a row to a function dch3 Excel Worksheet Functions 2 July 31st 06 12:34 PM
Passing array to a function GB[_3_] Excel Programming 3 October 21st 03 09:59 AM
Passing an Array of User-Defined Type to an Argument of a Function Tushar Mehta[_6_] Excel Programming 0 August 17th 03 06:43 PM


All times are GMT +1. The time now is 01:49 AM.

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

About Us

"It's about Microsoft Excel"