2013-12-21 66 views
3

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

注:如果I型在運行A999-9999(例如)時,所以似乎沒有變量或聲明的其餘部分存在問題。

感謝您的協助。

+1

@portlandrunner FileSearch被棄用在Office 2007中 - 不是一個好主意 – brettdj

回答

1

像這樣的東西指着你的目錄下找到所有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