W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
圖7-4 該錯(cuò)誤出現(xiàn)于試圖訪問(wèn)并不存在的數(shù)組成員
假設(shè)你聲明了一個(gè)包含6個(gè)成員的一維數(shù)組,而你卻試圖給第八個(gè)成員賦值,當(dāng)你運(yùn)行該過(guò)程時(shí),VB無(wú)法找到第八個(gè)成員,所以顯示錯(cuò)誤信息。點(diǎn)擊調(diào)試按鈕,VB將導(dǎo)致錯(cuò)誤的代碼行(見(jiàn)圖7-5)加亮。檢查數(shù)組的聲明語(yǔ)句,并且更改被加亮代碼行括號(hào)里的索引號(hào)?!跋聵?biāo)越界”錯(cuò)誤經(jīng)常是由使用循環(huán)的過(guò)程引發(fā)的。下面的過(guò)程Zoo1就是這種情況的一個(gè)例子。在用戶取消在輸入框里輸入數(shù)據(jù)之前,循環(huán)里的語(yǔ)句反復(fù)被執(zhí)行。在執(zhí)行該過(guò)程時(shí),當(dāng)變量 i 等于4的時(shí)候,VB無(wú)法在這個(gè)只有三個(gè)成員的數(shù)組里找到第四個(gè)成員,那么錯(cuò)誤信息就出現(xiàn)了。修改后的過(guò)程Zoo2示范了前面章節(jié)里介紹的LBound和UBound函數(shù)如何能夠避免試圖訪問(wèn)不存在的數(shù)組成員的錯(cuò)誤。
圖7-5 當(dāng)你點(diǎn)擊錯(cuò)誤信息的調(diào)試按鈕,VB就會(huì)加亮引發(fā)錯(cuò)誤的語(yǔ)句
1.在當(dāng)前工程里插入新模塊,命名為Errors_In_Arrays
2.輸入下列過(guò)程Zoo1和Zoo2:
Sub Zoo1()
'this procedure triggers an error "Subscript out of range" 本過(guò)程引發(fā)“下標(biāo)越界”錯(cuò)
誤
Dim zoo(3) As String
Dim i As Integer
Dim response As String
i = 0
Do
i = i +1
response = InputBox("Enter a name of animal:")
zoo(i) = response
Loop until response = ""
End Sub
Sub Zoo2()
'this procedure avoids the error "Subscript out of range"本過(guò)程避免“下標(biāo)越界”錯(cuò)誤
Dim zoo(3) As String
Dim i As Integer
Dim response As String
i = 1
Do While i>=LBound(zoo) And i <=UBound(zoo)
response = InputBox("Enter a name of animal:")
If response = "" Then Exit Sub
zoo(i) = response
i = i + 1
Loop
For i = LBound(zoo) To UBound(zoo)
MsgBox zoo(i)
Next
End Sub
另外一個(gè)使用數(shù)組時(shí)經(jīng)常碰到的錯(cuò)誤是類型不匹配。要避免這類錯(cuò)誤,就要牢記一個(gè)數(shù)組的每個(gè)成員都必須具有相同的數(shù)據(jù)類型。如果你試圖給數(shù)組成員賦予和數(shù)組聲明的數(shù)據(jù)類型矛盾的數(shù)據(jù)的話,你就將在執(zhí)行代碼時(shí)收到“類型不匹配”的錯(cuò)誤。要讓一個(gè)數(shù)組出錯(cuò)不同類型的數(shù)據(jù)類型的話,你就得聲明數(shù)組為Variant類型。Function AddMultipleArgs(ParamArray myNumbers() As Variant)
Dim mySum As Single
Dim myValue As Variant
For each myValue in myNumbers
mySum=mySum+myValue
Next
AddMultipleArgs = mySum
End Function
3. 激活立即窗口來(lái)試驗(yàn)上面的函數(shù),在立即窗口里輸入指令:?AddMultipleArgs(1, 23.24, 3, 24, 8, 34)
當(dāng)你按下回車鍵,VB就會(huì)返回上面參數(shù)的總和:93.24。你可以提供無(wú)限制的參數(shù)數(shù)目。注意,每個(gè)函數(shù)的參數(shù)之間要用逗號(hào)分開。Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: