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

时间:2018-01-26 10:39:58

标签: excel vba excel-vba filesystems

我正在尝试将文件从共享文件夹复制到另一个文件夹。唯一的标识符是文件名中的前一天的日期(我每天根据日期重复此过程)。文件名中的日期格式为public int QtyRcvd {get;set;} //"get" to display, "set" to edit. 。我们每天都会收到一个新文件到需要复制的文件夹,命名约定为"yymmdd"

我有以下代码可以使用,但它会复制旧文件(就像今天它复制了T1234567_CPyymmddS1.txt而不是180117的文件。任何帮助都将不胜感激。

180125

2 个答案:

答案 0 :(得分:3)

SFilename放入任何内容之前,您正在构建Ipan2。此外,您不需要像这样的错误陷阱。如果该文件不存在,则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

答案 1 :(得分:1)

语句sFilename = Dir(" G:\"& Ipan2)应该在Ipan2 =" _CP "之后。 &安培; myDate1& " S1.TXT *"声明