执行 while 条件 vb6

pet*_*ter 3 vb6 while-loop

我有一个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
Run Code Online (Sandbox Code Playgroud)

我希望 Do While 循环,直到到达 varTemp 的末尾。但是,当我从对话框中选择两个文件并且使用 x = 3 命中“Do While”时,我收到“运行时错误‘9’:下标超出范围”。“Do While”循环必须在什么条件下循环直到 varTemp 结束?谢谢。

Lit*_*les 5

你可以用这个代替:

Do While x <= UBound(varTemp)
Run Code Online (Sandbox Code Playgroud)

由于varTemp将是一个数组,因此这将循环直到您到达数组中的最后一个元素。

如果用户取消选择并且varTemp为空,您可以在循环之前检查空字符串,如下所示:

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

        string1 = varTemp(x)
        x = x + 1

    Loop
End If
Run Code Online (Sandbox Code Playgroud)