取消按钮应退出该子

use*_*017 2 excel vba

我有一个代码来获取一个对话框来选择文件夹名称并显示用户选择的文件夹的名称.

但是如果用户尝试选择取消而不是文件夹路径并且确定,则会抛出错误.

根据我的观察,我使用状态变量并注意到取消后状态变为-1.所以我尝试使用if条件实现注释部分中的代码以退出子.

但是,如果在代码中存在注释部分时选择文件夹,则这似乎不起作用.

没有它,它在选择文件夹时工作正常.

有人可以帮忙吗?它一分钟,我错过了一些东西:(

sub abc()
    Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
        diaFolder.AllowMultiSelect = False
        diaFolder.Title = "Select a folder then hit OK"
        diaFolder.Show
        'Status = diaFolder.Show
        'If Status < 0 Then
        'Exit Sub
        'End If
        a = diaFolder.SelectedItems(1)

        MsgBox ("Folder selected is :" & a)
ens sub
Run Code Online (Sandbox Code Playgroud)

小智 8

请记住,vbFalse = 0和vbTrue = -1.换句话说,单击"确定"将返回-1,单击"取消"将返回0.

请尝试以下代码:

Sub abc()
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Title = "Select a folder then hit OK"
        If .Show = -1 Then
            MsgBox ("Folder selected is :" & .SelectedItems(1))
        Else
            Exit Sub
        End If
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)