請教各位
假設我在一般模組中(也就是Module1.bas)
寫下了這樣的一個副程式
Sub Mysub
For i = 1 to 3
A(i)=i+6
Next i
End Sub
接著希望在表單1中呼叫(也就是在Form1中)
因此我寫下
For i = 1 to 3
If A(i) > 2 Then
A(i)=A(i)/3
End If
Next i
結果在紅色的這行,出現了"陣列索引超出範圍"的錯誤
請問各位,這是什麼原因呢?
又..這要如何解決呢??
謝謝..拜託大家了~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.20.9
> -------------------------------------------------------------------------- <
作者: ravis (總匯) 看板: Visual_Basic
標題: Re: [問題] 關於"模組"的問題
時間: Thu Aug 22 15:21:50 2002
※ 引述《clifflu (長髮倒數;程式怪)》之銘言:
: ※ 引述《Ihope (我期待..)》之銘言:
: : 結果在紅色的這行,出現了"陣列索引超出範圍"的錯誤
: : 請問各位,這是什麼原因呢?
: : 又..這要如何解決呢??
: : 謝謝..拜託大家了~~~
: 可能是變數沒做宣告吧 ??
: 在模組前面Dim A(3)
: 一陣子沒寫大的VB了,所以記得不是很熟 (笑)x
我剛剛試了一下
應該是在模組前沒做宣告
宣告成 public A(3) 就可以了
--
╭─────╮╭─────┐╭───┐╭┐┌─────┐╭─────╮
∣ ╭┐∣∣ ╭┐∣∣ ∣∣∣╰┐ ┌╯∣ ╭╯
∣ ∣∣∣∣ ││∣∣ └╯∣ ∣ ∣ ∣ └╮
∣ └╯∣∣ └╯∣∣ ∣ ∣ ∣ ╰┐ ∣
∣ ╭─╯∣ ┌┐∣╰┐ ╭╯╭┘ └╮╭╯ ∣
└───╯─╯└───╯└╯ ╰───╯ꈠ└─────┘╰─────╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.221.30.57
> -------------------------------------------------------------------------- <
作者: clifflu (長髮倒數;程式怪) 看板: Visual_Basic
標題: Re: [問題] 關於"模組"的問題
時間: Thu Aug 22 18:15:41 2002
※ 引述《Ihope (我期待..)》之銘言:
: 修改之後就可以了~~
: 謝謝各位..
對了,想到一件事情
VB有一個它很方便的地方,就是預設來說,變數是不用宣告的
所以在一個一個的小段子中,想要多少暫時變數就用多少
反正寫VB的人,一般也不太需要注意太多吃Ram什麼的問題 (笑)
可是這樣有個壞處,就是在變數打錯啊,或是像這種其實是應該在外面定義的情況
程式撰寫人的警覺性偏低
所以我習慣在寫VB時,第一行就打上 "option explicit"
這樣會強制變數在使用前必需要先宣告,如此發生這類問題的情型就變少囉
當然,也可以在Preference裡設定
不過我每次都忘記在那裡,還是自己手動打比較實用 \^^/ //bow
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.212.3