根据文件名中的日期复制文件

Copy a file based on date within the filename

我正在尝试将文件从共享文件夹复制到另一个文件夹。唯一的标识符是文件名中前一天的日期(我每天根据日期重复这个过程)。文件名中的日期格式为 "yymmdd"。我们每天都会收到一个新文件到需要复制的文件夹中,命名规则是这样的T1234567_CPyymmddS1.txt.

我有以下应该工作的代码,但它复制了旧文件(就像今天它复制了一个文件 180117 而不是 180125。任何帮助将不胜感激。

Sub iSeries()
Dim myDate1 As String
Dim Ipan1 As String
Dim Ipan2 As String
Dim sFilename As String
sFilename = Dir("G:\" & Ipan2)

myDate1 = Format(Date - 1, "yymmdd")
Ipan1 = "157782_panama_iseries_" & mGlobalDate & ".txt"
Ipan2 = "*_CP*" & myDate1 & "S1.TXT*"

On Error GoTo Quit
'source path below
FileCopy "G:\" & sFilename, _
    "C:\" & mFilePath & "\" & Ipan1
Quit:
End Sub

Ipan2 中放入任何内容之前,您正在构建 SFilename。此外,您不需要像这样的错误陷阱。如果该文件不存在,那么 SFilename 将为空,因此只需对其进行测试。

尝试:

Sub iSeries()
    Dim myDate1 As String
    Dim Ipan1 As String
    Dim Ipan2 As String
    Dim sFilename As String

    myDate1 = Format(Date - 1, "yymmdd")
    Ipan1 = "157782_panama_iseries_" & mGlobalDate & ".txt"
    Ipan2 = "*_CP" & myDate1 & "S1.TXT*"    ' second * removed
    sFilename = Dir("G:\" & Ipan2)

    Debug.Print "Ipan2 (search criteria) : " & Ipan2

    If sFilename = "" Then
        MsgBox "File not found"
    Else
        Debug.Print "sFilename (match found) : " & sFilename 
        'source path below
        FileCopy "G:\" & sFilename, _
        "C:\" & mFilePath & "\" & Ipan1
    End If
End Sub

语句 sFilename = Dir("G:\" & Ipan2) 应该在 Ipan2 = "_CP" & myDate1 & "S1.TXT*" 语句[=10 之后=]