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 Sub
到End
因为我需要整个程序停止!
试试这个:
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
返回0
( False
)。 但是,如果用户按“确定” – 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