View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Dan Thompson Dan Thompson is offline
external usenet poster
 
Posts: 125
Default 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.