Vba 代码运行正常,但单步执行时出错

Vba 代码运行正常,但单步执行时出错,vba,Vba,更新:我已经被引导到一个解决方案在这里 下面的代码将循环浏览用户选择的文件夹,并列出其中的文件 写入MsgBox或调试时,它工作正常。通过F5打印,但在尝试单步执行时会导致运行时错误5“过程调用或参数无效”,并在FileToList=Dir处中断 当我观察Dir和FileToList的监视窗口时,Dir在FileToList到达文件夹中的第三个文件之前到达“”。在循环中每次按F8键都会导致Dir值在整个循环周期之前发生变化 Sub Loop_Inside_Folder() Dim FileD

更新:我已经被引导到一个解决方案在这里

下面的代码将循环浏览用户选择的文件夹,并列出其中的文件

写入MsgBox或调试时,它工作正常。通过F5打印,但在尝试单步执行时会导致运行时错误5“过程调用或参数无效”,并在
FileToList=Dir
处中断

当我观察Dir和FileToList的监视窗口时,Dir在FileToList到达文件夹中的第三个文件之前到达“”。在循环中每次按F8键都会导致Dir值在整个循环周期之前发生变化

Sub Loop_Inside_Folder()
 
Dim FileDir As String
Dim FileToList As String
 
 With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Please select a folder"
    .ButtonName = "Pick Folder"
    If .Show = 0 Then
        MsgBox "Nothing was selected"
        Exit Sub
    Else
    'Folder path
        FileDir = .SelectedItems(1) & "\"
    End If
 End With
 
 'Get first matching file name
 FileToList = Dir(FileDir & "*xlsm")
 
 Do Until FileToList = ""
    
    'Debug.Print FileToList
    FileToList = Dir
 Loop
 
End Sub
为了进一步测试,我包括了5行:

FiletoList = Dir(FileDir & "*.xls*")
FiletoList = Dir(FileDir & "*.xls*")
FiletoList = Dir(FileDir & "*.xls*")
FiletoList = Dir(FileDir & "*.xls*")
FiletoList = Dir(FileDir & "*.xls*")
FiletoList = Dir(FileDir & "*.xls*")
每个步骤的值为:

Dir : "File 2.xlsx"

FileToList : "File 1.xlsx"
因此,在单步执行时,FileToList=Dir似乎无法正常工作。这就好像Dir无法匹配FileToList,因此它将转到下一个可用文件

我不确定这是否与我当地的环境有关?有什么想法吗


非常感谢。

请参阅初始帖子顶部的更新与堆栈溢出链接