[算表] 阵列索引超出范围

楼主: eric19980722 (没有毛的鸡)   2019-06-15 23:33:20
软件:excel
版本:365专业加强版
事情是这样的
我按照学校老师上课给的讲义
在模组新增了自己的函数
函数的程式没问题
在工作表格上打 =后打函数名字也会跳出来
https://i.imgur.com/lMGzkYP.jpg
但是输入完变量后 按下enter
格子里却显示 #value!
https://i.imgur.com/KuT9tkc.jpg
在vba里面打的话
https://i.imgur.com/S4mDRKa.jpg
执行后却显示阵列索引超出范围
https://i.imgur.com/UEAC4dO.jpg
附上老师的讲义程式 基本上是没有问题
https://i.imgur.com/EmDcj68.jpg
https://i.imgur.com/XJHuwil.jpg
https://i.imgur.com/YvDdFdy.jpg
想说vba里都没有打到关于工作表的程式(worksheets之类的
到底怎么会这样呜呜
作者: soyoso (我是耀宗)   2019-06-16 00:35:00
加上option base 1 试试https://i.imgur.com/7c5WEtw.jpg 测试加上后可排除如不加的话,function BiNorCd内循环,改为for I=0 to 4和for j=I to 4
楼主: eric19980722 (没有毛的鸡)   2019-06-16 00:41:00
感谢soyo大大呜呜呜呜竟然破解好神我加了option base就可以了 没用过这个刚刚查了一下是在覆写默认的基底吗我是读商学院的 老师也不是工学院的所以不会教的像资工那样深入不太知道为啥改变基底后就可以了╭(蚊躬)╮
作者: soyoso (我是耀宗)   2019-06-16 00:59:00
不设时基底为0,function BiNorCdf内的变量X和y五个元素的索引为0,1,2,3,4,而循环是变量I和j为1,2,3,4,51,2,3,4时不会有错,到了5时因变量X和y无该索引值,所以出现阵列索引超出范围。加上option base 1后变量X和y五个元素的索引为1,2,3,4,5,配合循环变量也同1~5,因此可这部分可顺利读出变量X和y的元素不加的话,循环变量I和j就改为0 to 4和I to 4,应也可以顺利读出
楼主: eric19980722 (没有毛的鸡)   2019-06-16 01:19:00
有!试了两个方法都行得通 感谢大大的拯救 解释的也很清楚 看一遍就懂了 感激不尽

Links booklink

Contact Us: admin [ a t ] ucptt.com