View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Jim Thomlinson[_3_] Jim Thomlinson[_3_] is offline
external usenet poster
 
Posts: 983
Default 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.