VBA通配符语句

3

VBA在使用通配符*时找不到我的文件。这个语句的语法有问题吗?

Workbooks.Open Filename:="C:\Users\xxxx\Desktop\xxxx Charts\xxxx Source Files\*_history_" & myYear & "-" & myMonth & "-" & mydate & "_" & myHour & "h" & myminute & "m" & "00s_xxx_all_xxx.csv"

我想匹配的通配符是大写字母、数字、数字、数字、连字符、数字、数字、数字、例如:A999-9999。

注意:如果我手动输入A999-9999(例如),它可以运行,因此变量或语句的其他部分似乎没有问题。

非常感谢您的任何帮助。


1
@portlandrunner,FileSearch在Office 2007中已被弃用 - 这不是一个好主意。 - brettdj
1个回答

2

类似下面这样的命令可以找到你指定目录中所有符合"-.csv"文件名格式的csv文件,并进一步检查打开第一个符合你期望文件模式的文件

Sub LoopThroughFiles()
    Dim StrFile As String
    Dim bFound As Boolean
    Dim WB As Workbook
    StrFile = Dir("c:\temp\*-*.csv")
    Do While Len(StrFile) > 0
    If StrFile Like "[A-Z]###-####.csv" Then
    Set WB = Workbooks.Open("c:\temp\" & StrFile)
    bFound = True
    Exit Do
    Else
        StrFile = Dir
    End If
    Loop
    If Not bFound Then MsgBox "File not found", vbCritical
End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接