Excel VBA忽略我的IF语句退出子

Excel忽略我的编程语句,它应该退出子,如果项目数是没有的

鉴于它忽略了第一个IF声明,我试图简单地用第二个IF声明来捕获它,但它也忽略了!

该代码不仅执行,但它只是跳过所有的语句,如果我试图通过使用F8逐行阅读,那么它执行完整的代码。

我不明白为什么这样做,或者可能导致它…任何帮助表示赞赏。

Private Sub SelectFolder() With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & " \" .Title = "Select Folder" .Show If .SelectedItems.Count = 0 Then Exit Sub Else sPfad = .SelectedItems(1) End If End With If sPfad = "" Then Exit Sub End Sub 

更新:得到这个响应,当我尝试它自动步进通过代码工作,我意识到,当我运行整个过程,我的问题依然存在。

今天我终于知道了发生了什么…事实上,这个子程序按照程序devise,停止和结束。 那特别的分。 但是,由于我从一个过程中的另一个子项目调用它,代码然后返回到调用子继续。

我需要的只是改变Exit SubEnd因为我需要整个程序停止!

试试这个:

 Sub SelectFolder() With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & " \" .Title = "Select Folder" If Not .Show Then Exit Sub sPfad = .SelectedItems(1) End With End Sub 

当用户按“取消”.Show返回0False )。 但是,如果用户按“确定”FileDialog窗口中的当前文件夹被选中

一种不同的方法:

 Private Sub SelectFolder() Dim strPath As Variant Dim sPfad As Variant With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & " \" .Title = "Select Folder" End With strPath = Application.FileDialog(msoFileDialogFolderPicker).Show If strPath = False Then Exit Sub Else sPfad = strPath End If End Sub