Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 85
Default maximum variables within sub

i have one sub that calls another and apparently have run out of room for
variables. my code is similar to this one, but with many more variables w/in
sub2:
sub1()
a=1
b=2
c=3
d=4
call sub2(a,b,c,d,e,f)
range("a1") = e
range("a2") = f
end sub

sub2(a,b,c,d,e,f)
e = a + b + c
f = a*b*c/d
end sub

this works great, but i have been adding many variables from sub1 that are
needed to complete sub2 and apparently have run out of space. i have, i
think, 60 variables when it was working, but adding 1 more caused it to
malfunction. surely vba doesn't limit you to 60 variables. any thoughts?
thanks, mike allen


  #2   Report Post  
Posted to microsoft.public.excel.programming
Ben Ben is offline
external usenet poster
 
Posts: 509
Default maximum variables within sub

no just 60 variables to pass

"mike allen" wrote:

i have one sub that calls another and apparently have run out of room for
variables. my code is similar to this one, but with many more variables w/in
sub2:
sub1()
a=1
b=2
c=3
d=4
call sub2(a,b,c,d,e,f)
range("a1") = e
range("a2") = f
end sub

sub2(a,b,c,d,e,f)
e = a + b + c
f = a*b*c/d
end sub

this works great, but i have been adding many variables from sub1 that are
needed to complete sub2 and apparently have run out of space. i have, i
think, 60 variables when it was working, but adding 1 more caused it to
malfunction. surely vba doesn't limit you to 60 variables. any thoughts?
thanks, mike allen



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 863
Default maximum variables within sub

It may well limit the number of arguments. You have a couple of options here.
One is to put your individual variables into an array, i.e.

Dim Vars AS Variant
Vars = Array(1,2,3,4,5,6)

or

Dim Vars() As Long
ReDim Vars(1 to 10)
For i = 1 to 10
Vars(i) = i
Next i

Then you call the 2nd Sub with just one argument, Vars or Vars()

The other option is to use a user-defined type variable, i.e.

Type MultipleVarsType
a as integer
b as byte
c as long
d as double
e as string
f as double
End Type

Sub1()

Dim V As MultipleVarsType
With V
.a = 3
.b = 27
.c = 387587
.d = 3.14159#
.e = "some text"
.f = exp(1)
End With

Sub2 V
End Sub

Sub2(X as MultipleVarsType)
X.a = X.a / 38
End Sub

On Wed, 26 Jan 2005 14:16:51 -0600, "mike allen"
wrote:

i have one sub that calls another and apparently have run out of room for
variables. my code is similar to this one, but with many more variables w/in
sub2:
sub1()
a=1
b=2
c=3
d=4
call sub2(a,b,c,d,e,f)
range("a1") = e
range("a2") = f
end sub

sub2(a,b,c,d,e,f)
e = a + b + c
f = a*b*c/d
end sub

this works great, but i have been adding many variables from sub1 that are
needed to complete sub2 and apparently have run out of space. i have, i
think, 60 variables when it was working, but adding 1 more caused it to
malfunction. surely vba doesn't limit you to 60 variables. any thoughts?
thanks, mike allen


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 85
Default maximum variables within sub

great info. i couldn't really follow the last suggestion, but i got a
variation of the first suggestion to work. thank you. mike allen
"Myrna Larson" wrote in message
...
It may well limit the number of arguments. You have a couple of options
here.
One is to put your individual variables into an array, i.e.

Dim Vars AS Variant
Vars = Array(1,2,3,4,5,6)

or

Dim Vars() As Long
ReDim Vars(1 to 10)
For i = 1 to 10
Vars(i) = i
Next i

Then you call the 2nd Sub with just one argument, Vars or Vars()

The other option is to use a user-defined type variable, i.e.

Type MultipleVarsType
a as integer
b as byte
c as long
d as double
e as string
f as double
End Type

Sub1()

Dim V As MultipleVarsType
With V
.a = 3
.b = 27
.c = 387587
.d = 3.14159#
.e = "some text"
.f = exp(1)
End With

Sub2 V
End Sub

Sub2(X as MultipleVarsType)
X.a = X.a / 38
End Sub

On Wed, 26 Jan 2005 14:16:51 -0600, "mike allen"
wrote:

i have one sub that calls another and apparently have run out of room for
variables. my code is similar to this one, but with many more variables
w/in
sub2:
sub1()
a=1
b=2
c=3
d=4
call sub2(a,b,c,d,e,f)
range("a1") = e
range("a2") = f
end sub

sub2(a,b,c,d,e,f)
e = a + b + c
f = a*b*c/d
end sub

this works great, but i have been adding many variables from sub1 that are
needed to complete sub2 and apparently have run out of space. i have, i
think, 60 variables when it was working, but adding 1 more caused it to
malfunction. surely vba doesn't limit you to 60 variables. any thoughts?
thanks, mike allen




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
MAXIMUM # OF X VARIABLES USED FOR MULTIVARIATE REGRESSION? WA Excel Worksheet Functions 4 January 16th 09 02:33 AM
How do I calculate maximum with variables. DanASU Excel Worksheet Functions 3 June 13th 08 08:01 PM
Maximum number of variables allowed in an Excel Spreadsheet? cecilie Excel Discussion (Misc queries) 1 April 14th 08 06:48 PM
Excel Solver (Maximum Limit of no. of variables & constraints) Ritesh Excel Discussion (Misc queries) 1 August 8th 06 05:54 PM
LINEST maximum number of predictor variables Peter N Excel Worksheet Functions 7 February 17th 05 10:14 AM


All times are GMT +1. The time now is 09:40 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"