VB中的错误:类型不匹配,缺少数组或用户定义类型,高手帮忙啊!

来源:百度知道 编辑:UC知道 时间:2024/07/04 06:12:19
ReDim INDX(1 To NNVariable% * TotalNode%) As Integer
这个是定义
Call LUDCMP(al#(), N, INDX%(), p)
调用函数,就出现错误,说是INDX%()类型不匹配,这个是什么原因啊,我定义的了。
Sub Gauss_Elimation(a#(), b#())

Dim N As Integer '方程的维数

Dim i As Integer
Dim j As Integer
Dim l As Integer

ReDim al(1 To NNVariable% * TotalNode%, 1 To NNVariable% * TotalNode%) As Double

ReDim x(1 To NNVariable% * TotalNode%) As Double

Dim p As Integer
ReDim INDX(1 To NNVariable% * TotalNode%) As Integer

N = UBound(a#, 1)
For i = 1 To N
For j = 1 To N
al(i, j) = a(i, j)
Next j
Next i

Call LUDCMP(al#(), N, INDX%(), p)

For l = 1 To N
x(l) = b(l)
Next l

Call LUBKSB(al#(), N, INDX%(), x#())

End Sub

Sub LUDCMP(a#(), N, INDX%(), d)

Dim nm

把LUDCMP的定义贴出来看看。
——————————
你还是没有把LUDCMP的定义贴出来啊。

我估计是你的LUDCMP过程参数写得有问题。
Sub LUDCMP(A(), N, INDX(), D)
如果你像上面那么写就肯定有问题
你要把类型指定清楚:
Sub LUDCMP(A() as Double, N as Integer, INDX() as Integer, D as Integer)
--------------------------
哦,你那样定义的啊。

我发现貌似是你的一个输入错误:
Call LUDCMP(al#(), N, INDX%(), p)
这里的al#没有定义。。。综观你的整个函数,没找到al的定义,是你不小心把a#()打成al#()了吗?

--
另外建议楼主以后所有变量在定义时都明确指明类型以减少出错的几率。
还有就是INDX%()这种写法已经不推荐了,应该用INDX() As Integer。其它的依此类推。。

如果这里出错就加一个val(字符串数字)

错误应该不出在这里