【问题标题】:Excel VBA - Function to detect if a file exists based on Cell ValuesExcel VBA - 根据单元格值检测文件是否存在的函数
【发布时间】:2013-10-23 10:47:51
【问题描述】:

尝试编写一个函数来检测文件 (pdf) 是否存在。由于有许多文件/文件夹,我想从单元格值构建文件路径。

到目前为止我已经得到了这个:

Public Function FileExists(FullpathName As String) As Boolean

If Len(Dir(FullpathName)) = 0 Then

    FileExists = True

Else

    FileExists = False

End If

End Function

我在单元格中输入了这个:

=FileExists(A2&B2&A3&" "&A1&" "&C2&".pdf")

但是当文件肯定在其中时,它会将其返回为 false。任何人都可以阐明我所缺少的东西吗?

谢谢!

【问题讨论】:

  • 不应该反过来吗(TrueFalse)?
  • 路径各部分之间有 \\'s 吗?
  • A2&B2&A3&" "&A1&" "&C2&".pdf" 调试这一行并向我们展示你得到了什么?
  • 我现在已经删除了空格,因为我认为这可能会混淆它,如果我输入 MsgBox FullPathname 我会得到它显示 G:\Spalton\TestDocs\ChrisSpaltonSept121.pdf - 这是正确的文件,在正确的位置,但在检查时仍然返回 false。我以前从未使用过 DIR 命令,是否需要激活插件或其他东西才能使其工作?

标签: vba excel


【解决方案1】:

您的 IF 条件是倒退的,请使用:

Public Function FileExists(FullpathName As String) As Boolean
    If Len(Dir(FullpathName)) = 0 Then
        FileExists = False
    Else
        FileExists = True
    End If
End Function

【讨论】:

  • 不,这仍然无法正常工作,这可能与在单元格中包含 \\'s 有关吗?例如 A2 当前是 G:\Documents\
  • 您需要进行一些调试............在您的 UDF 中包含这一行:MsgBox FullPathName
  • 这适用于 Excel 文件,可以正确和正确地检测到这些文件,但仍然拒绝适用于 PDF(这是我需要的)我该如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多