Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Passing a string aray as an argument to a function ?....Help!
I am trying to pass a string array as an argument for a function, but I keep
getting this compile error, Type mismatch: array or user-defined type expected Here is my code, why won't this work ? Option Explicit Option Base 1 Dim Oil(18), Gas(18), HO(18) As String Sub SetChrtPosAndColor() GetChartNumsFromTxtFile WriteChartNums2txtFile Oil End Sub Function GetChartNumsFromTxtFile() Dim X As Integer Open "C:\ChrtNumLst.txt" For Input As #1 For X = 1 To 54 If X < 19 Then Line Input #1, Oil(X) ElseIf X 18 And X < 37 Then Line Input #1, Gas(X - 18) ElseIf X 36 Then Line Input #1, HO(X - 36) End If Next X Close #1 End Function Function WriteChartNums2txtFile(Commodity() As String) Dim X As Integer Open "C:\WriteChtNum.txt" For Output As #1 For X = 1 To 18 Print #1, Commodity(X) Next X Close #1 End Function Dan Thompson. |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Passing a string aray as an argument to a function ?....Help!
Hi Dan,
Don't know much about this. What I do know, however, is that the "As String" declaration only works for the last defined name. So you should use Dim Oil(18) As String, Gas(18) As String, HO(18) As String -- Kind Regards, Niek Otten Microsoft MVP - Excel "Dan Thompson" wrote in message ... I am trying to pass a string array as an argument for a function, but I keep getting this compile error, Type mismatch: array or user-defined type expected Here is my code, why won't this work ? Option Explicit Option Base 1 Dim Oil(18), Gas(18), HO(18) As String Sub SetChrtPosAndColor() GetChartNumsFromTxtFile WriteChartNums2txtFile Oil End Sub Function GetChartNumsFromTxtFile() Dim X As Integer Open "C:\ChrtNumLst.txt" For Input As #1 For X = 1 To 54 If X < 19 Then Line Input #1, Oil(X) ElseIf X 18 And X < 37 Then Line Input #1, Gas(X - 18) ElseIf X 36 Then Line Input #1, HO(X - 36) End If Next X Close #1 End Function Function WriteChartNums2txtFile(Commodity() As String) Dim X As Integer Open "C:\WriteChtNum.txt" For Output As #1 For X = 1 To 18 Print #1, Commodity(X) Next X Close #1 End Function Dan Thompson. |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Passing a string aray as an argument to a function ?....Help!
A couple of problems...
One your declaration does not work. Try this Private Oil(18) As String Private Gas(18) As String Private HO(18) As String The other problem (not that it will keep the project from compiling) is that your functions should be changed to sub procedures. A function returns a value. Your functions do not return values. "Niek Otten" wrote: Hi Dan, Don't know much about this. What I do know, however, is that the "As String" declaration only works for the last defined name. So you should use Dim Oil(18) As String, Gas(18) As String, HO(18) As String -- Kind Regards, Niek Otten Microsoft MVP - Excel "Dan Thompson" wrote in message ... I am trying to pass a string array as an argument for a function, but I keep getting this compile error, Type mismatch: array or user-defined type expected Here is my code, why won't this work ? Option Explicit Option Base 1 Dim Oil(18), Gas(18), HO(18) As String Sub SetChrtPosAndColor() GetChartNumsFromTxtFile WriteChartNums2txtFile Oil End Sub Function GetChartNumsFromTxtFile() Dim X As Integer Open "C:\ChrtNumLst.txt" For Input As #1 For X = 1 To 54 If X < 19 Then Line Input #1, Oil(X) ElseIf X 18 And X < 37 Then Line Input #1, Gas(X - 18) ElseIf X 36 Then Line Input #1, HO(X - 36) End If Next X Close #1 End Function Function WriteChartNums2txtFile(Commodity() As String) Dim X As Integer Open "C:\WriteChtNum.txt" For Output As #1 For X = 1 To 18 Print #1, Commodity(X) Next X Close #1 End Function Dan Thompson. |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Passing a string aray as an argument to a function ?....Help!
Thanks Jim and Niek changing the array declarations worked!
Multi Declarations on a single line. So would This Declaration only assign string type to "Z" then ? Dim X, Y, Z As String Dan. "Jim Thomlinson" wrote: A couple of problems... One your declaration does not work. Try this Private Oil(18) As String Private Gas(18) As String Private HO(18) As String The other problem (not that it will keep the project from compiling) is that your functions should be changed to sub procedures. A function returns a value. Your functions do not return values. "Niek Otten" wrote: Hi Dan, Don't know much about this. What I do know, however, is that the "As String" declaration only works for the last defined name. So you should use Dim Oil(18) As String, Gas(18) As String, HO(18) As String -- Kind Regards, Niek Otten Microsoft MVP - Excel "Dan Thompson" wrote in message ... I am trying to pass a string array as an argument for a function, but I keep getting this compile error, Type mismatch: array or user-defined type expected Here is my code, why won't this work ? Option Explicit Option Base 1 Dim Oil(18), Gas(18), HO(18) As String Sub SetChrtPosAndColor() GetChartNumsFromTxtFile WriteChartNums2txtFile Oil End Sub Function GetChartNumsFromTxtFile() Dim X As Integer Open "C:\ChrtNumLst.txt" For Input As #1 For X = 1 To 54 If X < 19 Then Line Input #1, Oil(X) ElseIf X 18 And X < 37 Then Line Input #1, Gas(X - 18) ElseIf X 36 Then Line Input #1, HO(X - 36) End If Next X Close #1 End Function Function WriteChartNums2txtFile(Commodity() As String) Dim X As Integer Open "C:\WriteChtNum.txt" For Output As #1 For X = 1 To 18 Print #1, Commodity(X) Next X Close #1 End Function Dan Thompson. |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Passing a string aray as an argument to a function ?....Help!
This Declaration only assign string type to "Z" then ?
Dim X, Y, Z As String Yes. "Dim X, Y, Z As String" amounts to declaring X and Y as Variants and Z as a String. "Dan Thompson" wrote in message ... Thanks Jim and Niek changing the array declarations worked! Multi Declarations on a single line. So would This Declaration only assign string type to "Z" then ? Dim X, Y, Z As String Dan. "Jim Thomlinson" wrote: A couple of problems... One your declaration does not work. Try this Private Oil(18) As String Private Gas(18) As String Private HO(18) As String The other problem (not that it will keep the project from compiling) is that your functions should be changed to sub procedures. A function returns a value. Your functions do not return values. "Niek Otten" wrote: Hi Dan, Don't know much about this. What I do know, however, is that the "As String" declaration only works for the last defined name. So you should use Dim Oil(18) As String, Gas(18) As String, HO(18) As String -- Kind Regards, Niek Otten Microsoft MVP - Excel "Dan Thompson" wrote in message ... I am trying to pass a string array as an argument for a function, but I keep getting this compile error, Type mismatch: array or user-defined type expected Here is my code, why won't this work ? Option Explicit Option Base 1 Dim Oil(18), Gas(18), HO(18) As String Sub SetChrtPosAndColor() GetChartNumsFromTxtFile WriteChartNums2txtFile Oil End Sub Function GetChartNumsFromTxtFile() Dim X As Integer Open "C:\ChrtNumLst.txt" For Input As #1 For X = 1 To 54 If X < 19 Then Line Input #1, Oil(X) ElseIf X 18 And X < 37 Then Line Input #1, Gas(X - 18) ElseIf X 36 Then Line Input #1, HO(X - 36) End If Next X Close #1 End Function Function WriteChartNums2txtFile(Commodity() As String) Dim X As Integer Open "C:\WriteChtNum.txt" For Output As #1 For X = 1 To 18 Print #1, Commodity(X) Next X Close #1 End Function Dan Thompson. |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Passing a string aray as an argument to a function ?....Help!
Only Z would be a variable of type string. X and Y would be variants.
-- Regards, Tom Ogilvy "Dan Thompson" wrote in message ... Thanks Jim and Niek changing the array declarations worked! Multi Declarations on a single line. So would This Declaration only assign string type to "Z" then ? Dim X, Y, Z As String Dan. "Jim Thomlinson" wrote: A couple of problems... One your declaration does not work. Try this Private Oil(18) As String Private Gas(18) As String Private HO(18) As String The other problem (not that it will keep the project from compiling) is that your functions should be changed to sub procedures. A function returns a value. Your functions do not return values. "Niek Otten" wrote: Hi Dan, Don't know much about this. What I do know, however, is that the "As String" declaration only works for the last defined name. So you should use Dim Oil(18) As String, Gas(18) As String, HO(18) As String -- Kind Regards, Niek Otten Microsoft MVP - Excel "Dan Thompson" wrote in message ... I am trying to pass a string array as an argument for a function, but I keep getting this compile error, Type mismatch: array or user-defined type expected Here is my code, why won't this work ? Option Explicit Option Base 1 Dim Oil(18), Gas(18), HO(18) As String Sub SetChrtPosAndColor() GetChartNumsFromTxtFile WriteChartNums2txtFile Oil End Sub Function GetChartNumsFromTxtFile() Dim X As Integer Open "C:\ChrtNumLst.txt" For Input As #1 For X = 1 To 54 If X < 19 Then Line Input #1, Oil(X) ElseIf X 18 And X < 37 Then Line Input #1, Gas(X - 18) ElseIf X 36 Then Line Input #1, HO(X - 36) End If Next X Close #1 End Function Function WriteChartNums2txtFile(Commodity() As String) Dim X As Integer Open "C:\WriteChtNum.txt" For Output As #1 For X = 1 To 18 Print #1, Commodity(X) Next X Close #1 End Function Dan Thompson. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Passing a range name as an argument to the Index Function | Excel Discussion (Misc queries) | |||
Passing range as an argument in a function | Excel Programming | |||
VBA - Passing a FUNCTION as an Argument | Excel Programming | |||
Passing an Array of User-Defined Type to an Argument of a Function | Excel Programming | |||
passing a variable as an argument to a function | Excel Programming |