View Full Version : Solved: how to pass arrays as procedure parameters?

07-08-2006, 12:35 PM
Please help me find the answer. When I run it, I get the message "type mismatch; array or user-defined type expected"

thank you

07-08-2006, 12:37 PM
Can you explain what you are actually trying to do and where you get the error?

07-08-2006, 12:43 PM
I want to pass those arrays into the Eliminate Sub to perform calculations inside there, have you seen the code? You can not do anything (debugging) it just stops there

07-08-2006, 12:45 PM
Yes I've seen the code.

But there's no data in the attachment.:eek:

07-08-2006, 12:57 PM
Now I am concerned HOW to pass the arguments. I eliminated calculations for simplicity

07-08-2006, 02:07 PM
Hi Leo

Dim e11(), e12(), e13(), e14(), e15() As Double

This is only declaring e15() as double, the remainder are variants. You need to add "as Double" after each item.

07-08-2006, 02:12 PM
Option Explicit
Sub Main()
Dim p As Double
Dim i, j, k As Integer
Dim Imax, Jmax, Kmax As Integer

Dim e11() As Double, e12() As Double, e13() As Double, _
e14() As Double, e15() As Double ' matrix coeff
Imax = 12 'number of cells in i direction
Jmax = 0 'number of cells in j direction
Kmax = 0 'number of cells in k direction
ReDim e11(Imax, Jmax, Kmax), e12(Imax, Jmax, Kmax), _
e13(Imax, Jmax, Kmax), e14(Imax, Jmax, Kmax), _
e15(Imax, Jmax, Kmax) ' matrix coeff

i = 1 'skip the boundary cells
j = 0
k = 0

For k = 0 To Kmax
For j = 0 To Jmax
For i = 1 To Imax - 1
e11(i, j, k) = 2 * p
e12(i, j, k) = 3 * p
e13(i, j, k) = 4 * p
e14(i, j, k) = 4 * p
e15(i, j, k) = 4 * p
Next i
Next j
Next k
Eliminate 10, 0, 0, e11(), e12(), e13(), e14(), e15()
End Sub 'End of Main
Sub Eliminate(Imax As Integer, Jmax As Integer, Kmax As Integer, _
e11() As Double, e12() As Double, e13() As Double, _
e14() As Double, e15() As Double)
End Sub

07-08-2006, 02:19 PM

Good catch, I think I was caught up with trying to work out what the OP is actually trying to do.:)

07-08-2006, 02:36 PM
Dear mdmackillop and Norie,

thank you very much - I rush to test it. Since this is my first thread - do I close it? How?:clap:

07-08-2006, 03:03 PM
Thank you! it works! I just had to move "ReDim..." below assigned values of i,j,k :clap2: