如何将字符串与日期进行比较

时间:2019-08-28 16:03:12

标签: vba outlook outlook-vba

我正在尝试编写一些vba代码,该代码在指定的文件夹中使用文件名,挑选出该文件名的日期部分,并将其与当前日期进行比较。如果文件名中的日期较小,则应删除该文件。

日期以类似dd.mm.yy的文件名给出

到目前为止,我决定

Public Sub DeleteOldFiles()

    Dim FolderOld, CheckDate, ValFile As String

    FolderOld = "O:\temp\"

    Set FS = CreateObject("Scripting.FileSystemObject")
    Set Folder = FS.GetFolder(FolderOld)
    For Each File In Folder.Files
        CheckDate = File.Name
        ValFile = Mid(DateiName, InStr(CheckDate, "valid until ") + 12) 'cut of everything before the date
        ValFile = Left(ValFile, 8) 'cut everything behind the date

        If ValFile < Format(Date(), "dd.mm.yy") Then
            Kill FolderOld & CheckDate
        End If
    Next
End Sub

我的代码可以正常工作,只要它只涉及日期的一天部分,例如今天是8月28日。

如果文件名包含28.08.19,则该文件名仍然有效,并且未按预期删除。

如果文件名包含26.08.19,则该文件名无效,并且已按预期方式删除。 但是,如果文件名包含26.09.19,尽管仍然有效,但它会被删除。

也许有人有可能的解决方案?

1 个答案:

答案 0 :(得分:0)

尝试比较这样的日期:

If Format(ValFile ,"yyyy-mm-dd") <= Format(Date(),"yyyy-mm-dd") Then......etc.
相关问题