1

ユーザーが開くファイルが見つからない場合を説明しようとしています。

Dim fn As String
fn = Application.GetOpenFilename("All Files,.", 1, "Select a file", , False)

If fn = False Then
    Exit Sub
End If

これは、ファイルが選択されていないときに私が望むことを行います。

ただし、ユーザーファイルを選択すると、このIfステートメントによってエラーが発生します。誰かがこれを達成するための適切な方法を教えてもらえますか?

4

3 に答える 3

3

Excelの組み込みヘルプを確認するとApplication.GetOpenFilename、バリアントが返されることがわかります。だからあなたがしなければならないのは、fnとして宣言することですVariant

Sub Sample()
    Dim fn As Variant

    fn = Application.GetOpenFilename("All Files,.", 1, "Select a file", , False)

    If fn = False Then Exit Sub

    MsgBox fn
End Sub
于 2012-08-14T15:33:43.870 に答える
2

関数はブール値を返しませんFalseが、文字列 "False"を返します。これは、関数から変数タイプにバリアントをキャストするため、テストは次のようになります。

If fn = "False" Then

(説明の変更-@SiddharthRoutに感謝)

于 2012-08-14T15:25:59.117 に答える
1

変化する

If fn = False Then

If CStr(fn) = "False" Then
于 2012-08-14T15:22:15.673 に答える