VBA通配符声明

时间:2013-12-21 04:09:55

标签: excel excel-vba vba

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 个答案:

答案 0 :(得分: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