Excel忽略我的编程语句,即如果项目计数为零,它应该退出子项
考虑到它忽略了第一个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
更新:当我尝试自动遍历代码时,得到了这个效果很好的响应,我意识到当我运行整个过程时,我的问题仍然存在。
今天我终于知道发生了什么。。。事实上,潜艇确实按照程序停止并结束。那个特定的sub。但是,由于我在过程中从不同的sub调用它,所以代码会返回到调用sub并继续。
我需要的只是将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
)。但是,如果用户按下"OK">-文件对话框窗口中的当前文件夹被选择为
一种不同的方法:
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