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返回0False)。但是,如果用户按下“确定”,则会在FileDialog窗口中选择当前文件夹

10-06 06:00
查看更多