|
問題是出在你的觀念是錯的
此行是用於取得今日融資餘額
TodayMPSurplus := LONDATA(4) ;
然而 3265 是 台曜電 這檔股票
這股票是沒有融資的股票
也就是說 LONDATA(4) 對它來說是無意義的(無效數據)
但對 2330 來說是有效的
用VBS存取數列一定要注意一件事
就是存取的範圍必需為有效範圍
若超出數列的有效範圍
可能導致數值異常或當機
以奇狐語法判斷是否為有效數據, 可用 LBOUND 的值來判斷
例如:CK:=LBOUND(n);
當 CK>0 為有效數據, CK=0 為無效數據
以 VBS 語法判斷是否為有效數據, 可利用 FFL.VarStartIndex 的值來判斷
例如:CK=FFL.VarStartIndex("n")
當 CK>-1 為有效數據, CK=-1 為無效數據
既是無效數據, 就不應帶入迴圈運算(應直接跳脫返回 0 值)
以 VBS 寫作公式, 像下列這樣的寫法是最糟的
for i = 0 to UBound(n)
很容易導致 VBS 出錯或當機
建議改用
for i = LBOUND(n) to UBound(n)
若使用商品可能會有無效數據時
則應先檢測是否為無效數據
若為有效數據才帶入迴圈
觀念提醒:
奇狐語法中數列有效起始位置未必都是 1
VBS 語法中數列有效起始位置未必都是 0
以 n = MA(C,10) 這樣的數列來說
奇狐有效起始位置是 10
VBS 有效起始位置是 9
|