You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何针对含随机可变部分的文件名执行fileExists通配符检查?

解决VBA中文件名含随机部分的文件存在性检查问题

嘿,这个问题我碰到过好多次了——FileSystemObject.FileExists方法本身不支持通配符,所以直接用它没法匹配中间带随机字符的文件名。这里有两种简单好用的解决方案,你可以根据需求选:

方法一:用Dir函数(最简洁省心)

Dir是VBA里原生支持通配符的函数,*能匹配任意多个字符,刚好用来替换你文件名里的随机部分。直接构造带通配符的路径,然后检查有没有匹配的文件就行:

Sub CheckFileWithWildcard()
    Dim filePathPattern As String
    Dim matchingFile As String
    
    ' 把随机的那一段换成*,构造匹配模式
    filePathPattern = "M:\Fake\FakeXfer" & Format(Now, "YYYYMMDD") & "_*_" & Format(Now - 1, "YYYYMMDD") & ".csv"
    
    ' 用Dir查找第一个匹配的文件
    matchingFile = Dir(filePathPattern)
    
    If matchingFile = "" Then
        MsgBox "Check Later"
    Else
        MsgBox "Proceed"
    End If
End Sub

方法二:用FileSystemObject遍历文件夹(更灵活)

如果你需要额外处理匹配到的文件(比如获取文件大小、修改时间),或者要确保只匹配特定格式的文件,就可以用FileSystemObject遍历目标文件夹,逐个匹配文件名:

Sub CheckFileWithFSO()
    Dim fs As Object
    Dim targetFolder As Object
    Dim currentFile As Object
    Dim fileNamePattern As String
    Dim fileFound As Boolean
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set targetFolder = fs.GetFolder("M:\Fake") ' 先定位到目标文件夹
    
    ' 同样把随机部分换成*,定义文件名匹配模式
    fileNamePattern = "FakeXfer" & Format(Now, "YYYYMMDD") & "_*_" & Format(Now - 1, "YYYYMMDD") & ".csv"
    fileFound = False
    
    ' 遍历文件夹里的所有文件
    For Each currentFile In targetFolder.Files
        ' 用Like运算符匹配文件名
        If currentFile.Name Like fileNamePattern Then
            fileFound = True
            Exit For ' 找到就立刻退出循环,省时间
        End If
    Next currentFile
    
    If Not fileFound Then
        MsgBox "Check Later"
    Else
        MsgBox "Proceed"
    End If
    
    ' 记得释放对象,避免内存泄漏
    Set currentFile = Nothing
    Set targetFolder = Nothing
    Set fs = Nothing
End Sub

小提示:

  • 如果你的随机部分长度是固定的(比如始终是9位数字),可以把*换成对应数量的?(比如9个?),这样匹配会更精准,不会误匹配到其他长度的随机字符串
  • Dir函数是最快的选择,适合只需要检查存在性的场景;FileSystemObject遍历则更适合复杂需求

内容的提问来源于stack exchange,提问作者HarNar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:39:40