当前位置:首页 » 编程软件 » vba编译错误数组维度已定义

vba编译错误数组维度已定义

发布时间: 2023-10-24 18:12:51

Ⅰ vb,求问一个小问题,这个代码运行以后,出现一个“编译错误:缺少数组或者用户定义类型”这是怎么回事

.

我觉得你写的有些不太妥的地方

1,arr1=Array(1,2,3,4)这个是用来定义数组的下标用的,不是用来赋值的.我这样写,定义的就是一个4维数组.你现在只需要一维四个元素,所以只要arr1=array(4)就OK了.

2,数组赋值应该像楼上那位仁兄一样,

3,传值,为什么要加小括号,我印象中直接把变量名放入括号就OK了?

4,我用word的VBA测试的,看不到print结果,所以改了msgbox.

5,VB已死,没必要研究了,如果想学桌面编程,试下其它的吧.比如C,C++,C#,java之类

Ⅱ VBA子函数输入是数组该怎么写提示错误(编译错误:类型不匹配,缺少数组或用户定义类型)


把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。其它的依此类推。。

Ⅲ Excel VBA编译错误:类型不匹配:缺少数组或用户定义类型

FunctionA_V_E(ary()AsVariant)
arr=Application.Transpose(Application.Transpose(ary))
Dimsumtemp
ForEachxInarr
n=n+1
sumtemp=sumtemp+x
Next
A_V_E=sumtemp/n
EndFunction

FunctionSt_De(ary()AsVariant)
Dimarr()
arr=Application.Transpose(Application.Transpose(ary))
DimX_ave
X_ave=A_V_E(arr)
Dimsum_x
ForEachxInarr
n=n+1
sum_x=sum_x+(x-X_ave)^2
Next
St_De=Sqr(sum_x/(n-1))
EndFunction

Subtest2()
Dimarr()
Dimresault
arr=Array(1,2,3,4)
resault=St_De(arr)
Debug.Printresault
EndSub

热点内容
matlab编程第四版答案 发布:2025-09-16 07:35:51 浏览:449
寄存器和存储单元 发布:2025-09-16 07:35:48 浏览:912
服务器sellog是什么 发布:2025-09-16 07:33:34 浏览:376
python字母排序 发布:2025-09-16 07:02:45 浏览:214
源码移位除法 发布:2025-09-16 06:55:59 浏览:728
我的世界国际版服务器欢迎加入 发布:2025-09-16 06:54:31 浏览:989
php网页播放器 发布:2025-09-16 06:53:50 浏览:121
怎么破vivo手机的密码 发布:2025-09-16 06:45:50 浏览:767
最简单编程 发布:2025-09-16 06:36:46 浏览:458
压缩碳颗粒 发布:2025-09-16 06:18:30 浏览:540