VBA: 检查文件是否存在
VBA: Check if files exist
我正在创建一个 PowerPoint 演示文稿,它从不同的 Excel 和 PowerPoint 文件中获取数据和幻灯片。基本代码有效,现在我必须清理它并处理 "what if the file doesn't exist?"
之类的问题
在这方面我需要一些建议。我希望发生两件事:我希望用户知道丢失的文件,而且代码继续执行(一个丢失的文件不应该破坏整个宏)。我如何以 clean/readable 方式执行此操作?
我的想法是在实际代码之前检查文件是否存在,例如
If Dir("File Path") = "" Then
MsgBox "File doesn't exist"
但是,在这种情况下,我还需要宏来跳过代码中缺少文件的部分。在最初的检查中,我可以创建一个像 File1Exists = True
这样的变量,如果文件不存在,它会切换到 False
。然后对于 code/each sub 的每个部分,我可以做一个 If 语句来检查这个条件是否为真。
这应该可行,但这真的是最好的解决方案吗?看起来像一堆代码来解决这样一个简单的问题。有人有更好的主意吗?
类似于:
Dim file_exists as Boolean
file_exists = (Dir("File Path") <> "")
If file_exists Then
....
Else
....
End If
我正在创建一个 PowerPoint 演示文稿,它从不同的 Excel 和 PowerPoint 文件中获取数据和幻灯片。基本代码有效,现在我必须清理它并处理 "what if the file doesn't exist?"
之类的问题在这方面我需要一些建议。我希望发生两件事:我希望用户知道丢失的文件,而且代码继续执行(一个丢失的文件不应该破坏整个宏)。我如何以 clean/readable 方式执行此操作?
我的想法是在实际代码之前检查文件是否存在,例如
If Dir("File Path") = "" Then
MsgBox "File doesn't exist"
但是,在这种情况下,我还需要宏来跳过代码中缺少文件的部分。在最初的检查中,我可以创建一个像 File1Exists = True
这样的变量,如果文件不存在,它会切换到 False
。然后对于 code/each sub 的每个部分,我可以做一个 If 语句来检查这个条件是否为真。
这应该可行,但这真的是最好的解决方案吗?看起来像一堆代码来解决这样一个简单的问题。有人有更好的主意吗?
类似于:
Dim file_exists as Boolean
file_exists = (Dir("File Path") <> "")
If file_exists Then
....
Else
....
End If