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
更新:
当我得到这个响应,当我尝试自动单步执行代码时,该响应很有效,我意识到当我运行整个过程时,我的问题仍然存在。
今天,我终于了解了正在发生的事情……该子程序实际上按照编程的方式进行操作,停止和结束。那个特别的子。但是,由于我是从过程中的另一个子程序调用的,因此代码随后返回到调用子程序并继续。
我需要的只是将
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窗口中选择当前文件夹