Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:Application.Workbooks.Open()打开文件浏览器_Vba_Excel - Fatal编程技术网

VBA:Application.Workbooks.Open()打开文件浏览器

VBA:Application.Workbooks.Open()打开文件浏览器,vba,excel,Vba,Excel,我正在尝试使用代码块: Sub OpenPulledReports(ByRef filepath) MsgBox (Dir(filepath)) If Dir(filepath) <> "" Then Application.Workbooks.Open (filepath) End If End Sub 检查文件是否已打开,如果未打开则打开。当这个子程序运行时,我无法调试它,但它只是在子程序结束时运行 但这不是我的问题。运行时,将打开一个文件资源管理器窗口,其中包含

我正在尝试使用代码块:

Sub OpenPulledReports(ByRef filepath)

MsgBox (Dir(filepath))

If Dir(filepath) <> "" Then
    Application.Workbooks.Open (filepath)
End If

End Sub
检查文件是否已打开,如果未打开则打开。当这个子程序运行时,我无法调试它,但它只是在子程序结束时运行

但这不是我的问题。运行时,将打开一个文件资源管理器窗口,其中包含标题更新值:filename as in,文件路径到达的文件名。这真的让事情变慢了。另外,我很确定我的Dirfilepath没有达到我的预期


谢谢你的帮助。

你说不能调试是什么意思?请记住,由于sub需要一个参数,您不能简单地在代码内部单击并点击f8-您需要通过传递参数的sub进行调试。在VBA窗口中,单击行“MsgBox…”左侧的边。这将创建一个红色圆圈,这意味着当代码到达该点时,它将停止运行,并打开调试窗口。然后,您可以按F8一次一行通过它。试一试——你的代码是否达到了那个阶段,或者在那个阶段之前它是否真的中断了?@Grade'Eh'Bacon谢谢你的回答。我不知道参数要求,但这是有道理的。我的意思是,我将进入Application.Workbooks.openfilepath,它不会让我看到发生了什么,它会在打开文件的过程中冻结,然后结束sub。这是您要解决的第一个问题。VBA代码逐行运行,如果它在到达您正在查看的行之前停止,您将无法在该行上获得正确答案。是否可以提供在工作簿.Open事件下打开的子项?是否可以添加filepath参数值的示例?是否可以使用检查文件是否打开,然后尝试打开它?