我有一个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 结束?谢谢。
你可以用这个代替:
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)