当前位置:首页 » 编程软件 » 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

热点内容
hp存储扩容 发布:2024-11-17 23:29:16 浏览:569
在ftp中put表示什么 发布:2024-11-17 23:29:12 浏览:383
mvc多文件上传 发布:2024-11-17 23:13:56 浏览:155
玩游戏硬盘缓存32m 发布:2024-11-17 23:03:42 浏览:525
蓝光存储系统 发布:2024-11-17 23:03:41 浏览:436
地平线4提示配置低于最低怎么办 发布:2024-11-17 22:54:38 浏览:610
注册银行卡账户密码填什么 发布:2024-11-17 22:54:35 浏览:537
java压缩上传图片 发布:2024-11-17 22:26:59 浏览:627
plc编程课件 发布:2024-11-17 22:18:23 浏览:469
我的世界服务器信号一直在检测 发布:2024-11-17 22:09:52 浏览:547