我有一个对话框来选择文件夹名称并显示用户选择的文件夹的名称。
如果用户选择“取消”而不是“文件夹路径”并单击“确定”,则会引发错误。
我使用了一个状态变量,并注意到取消后状态会变为-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