Excel 调试文件对话框代码后的跳转行
这是一个已知的bug,还是一些特定于我的东西(我正在使用Excel365) 当我在文件对话框显示调用(选择文件夹或取消)后跳到代码的下一行(F8)时,它似乎关闭了单步执行,并将所有代码运行到下一个断点,如果没有代码,则继续运行 在下面的示例I单步代码中,它进入'fd.show',然后只要我选择一个文件夹/取消并单击ok,它就会运行代码Excel 调试文件对话框代码后的跳转行,excel,vba,Excel,Vba,这是一个已知的bug,还是一些特定于我的东西(我正在使用Excel365) 当我在文件对话框显示调用(选择文件夹或取消)后跳到代码的下一行(F8)时,它似乎关闭了单步执行,并将所有代码运行到下一个断点,如果没有代码,则继续运行 在下面的示例I单步代码中,它进入'fd.show',然后只要我选择一个文件夹/取消并单击ok,它就会运行代码 Option Explicit Public Sub Test() Dim fd As FileDialog Dim sFile As Stri
Option Explicit
Public Sub Test()
Dim fd As FileDialog
Dim sFile As String
Dim n As Integer
n = 0
sFile = "Work_" & Replace(Date, "/", "") & Replace(Time, ":", "") & ".csv"
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
'*********** SINGLE STEP AFTER SHOW RUNS TO END *******************
If fd.Show = -1 Then
Dim sDir As String
sDir = fd.SelectedItems.Item(1)
If Dir(sFile) = "" Then
n = 1
Else
n = 2
End If
End If
MsgBox CStr(n)
End Sub
有关调试时,F8键的解决方案停止工作的详细说明,请参见 基本上,您必须向注册表中添加一个新键(名称为禁用或CDebugging7)并将其值更改为1
- 对于64位窗口上的32位Office,请转到注册表项:HKLM\SOFTWARE\Wow6432Node\Microsoft\VBA
- 对于32位窗口上的32位Office,请转到注册表项:HKLM\SOFTWARE\Microsoft\VBA
- 对于64位Windows上的64位Office,请转到注册表项:HKLM\SOFTWARE\Microsoft\VBA
如果fd.Show=-1,那么它(通常)会按照您描述的那样运行,fd.Show=-1
。。。否则,它将进入循环内部。你选择了文件夹吗?不,我的意思是,无论发生什么情况,禁用单步,我都可以删除if语句,并且有十几行,但它仍然跳出单步模式。你使用32位Office版本吗?谢谢,我会看一看。我在谷歌上做了很多工作,看看这是否是一个已知的问题。