Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
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
Posted to microsoft.public.excel.programming
|
|||
|
|||
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
Posted to microsoft.public.excel.programming
|
|||
|
|||
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
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
MAXIMUM # OF X VARIABLES USED FOR MULTIVARIATE REGRESSION? | Excel Worksheet Functions | |||
How do I calculate maximum with variables. | Excel Worksheet Functions | |||
Maximum number of variables allowed in an Excel Spreadsheet? | Excel Discussion (Misc queries) | |||
Excel Solver (Maximum Limit of no. of variables & constraints) | Excel Discussion (Misc queries) | |||
LINEST maximum number of predictor variables | Excel Worksheet Functions |