我有一个对话框来选择文件夹名称并显示用户选择的文件夹的名称。

如果用户选择“取消”而不是“文件夹路径”并单击“确定”,则会引发错误。

我使用了一个状态变量,并注意到取消后状态会变为-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

最佳答案

请记住,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

10-04 11:52