[算表] 陣列索引超出範圍

作者: 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