2013-01-09 31 views
2

我有一個小VB6程序:做while條件VB6

Private Sub Form_Load() 
    Dim varTemp As Variant 
    Dim string1 As String 

    Dim x As Integer 
    x = 0 

    dialog.Filter = "toate fisierele(*.*) | *.*" 
    dialog.Flags = cdlOFNAllowMultiselect Or cdlOFNLongNames Or cdlOFNExplorer 

    'open the window to select files 
    dialog.ShowOpen 

    varTemp = Split(dialog.FileName, vbNullChar) 

    Do While (varTemp(x) <> "") 

    string1 = varTemp(x) 
    x = x + 1 

    Loop 

    Unload Form1 
    End 

End Sub 

我想DO WHILE循環,直到它到達varTemp結束。但是,當我從對話框中選擇兩個文件,並在x = 3時點擊「Do While」時,出現「Run-time error'9':下標超出範圍」。什麼情況下,「Do While」循環必須循環到varTemp的結尾?謝謝。

回答

4

您可以使用它代替:

Do While x <= UBound(varTemp) 

由於varTemp將是一個數組,這將循環,直到你遇到數組中的最後一個元素。

如果用戶取消選擇,並且varTemp是空的,你可以檢查一個空字符串循環之前,就像這樣:

If varTemp <> vbNullString Then 
    Do While x <= UBound(varTemp) 

     string1 = varTemp(x) 
     x = x + 1 

    Loop 
End If 
+0

謝謝了很多 – peter