3

私は小さな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

varTempの終わりに達するまでDoWhileをループさせたいです。ただし、ダイアログから2つのファイルを選択し、「DoWhile」がx = 3でヒットすると、「ランタイムエラー「9」:添え字が範囲外です」というメッセージが表示されます。「DoWhile」ループはvarTempの終わりまでループする必要がありますか?ありがとうございました。

4

1 に答える 1

5

代わりにこれを使用できます:

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
于 2013-01-09T14:15:22.513 に答える