If 语句 - msgbox

Kim*_*uba 2 vba if-statement msgbox

我现在正在尝试编写一个 IF 语句来说明以下内容:如果文件超过 5 天,则不要运行宏。如果超过 5 天,请运行宏。

我希望这是一个是或否的对话框。这是我的代码。请帮忙。我还在努力学习这个vba代码。

Sub LastModifiedFile()

'Function FileLastModified(strFullFileName As String)
    Dim fs As Object, f As Object, s As String, dtmodpath As String

    dtmodpath = "\\jdshare\pdcmaterials\5_Tools\FTP\Cancelled_Report.txt"
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(dtmodpath)

    's = UCase(strFullFileName) & vbCrLf
    s = f.DateLastModified
    FileLastModified = s

    Set fs = Nothing: Set f = Nothing

Range("E5").Value = FileLastModified

'If FileExists(strFullName) Then
    'MsgBox FileLastModified(strFullName)
    'Else
        'MsgBox "File Older than 5 Years : " & vbNewLine & strFullName
    'End If

'End Function

End Sub
Run Code Online (Sandbox Code Playgroud)

Vit*_*ata 5

恭喜您正确使用该.DateLastModified属性!

而不是 MsgBox-es 调用函数。返回DateAdd()日期,比当前日期早5天,方便比较。这显示了一个MsgBox()通知文件距离上次修改时间是否超过或少于 5 天的信息:

Option Explicit

Sub LastModifiedFile()

    Dim fileObject As Object
    Dim file As Object
    Dim modPath As String

    modPath = "\\jdshare\pdcmaterials\5_Tools\FTP\Cancelled_Report.txt"
    Set fileObject = CreateObject("Scripting.FileSystemObject")
    Set file = fileObject.GetFile(modPath)

    If DateAdd("d", -5, Now) < file.DateLastModified Then
        MsgBox "Less than 5 days."
    Else
        MsgBox "More than 5 days."
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

如果你想在整个故事中放置一个 MsgBox 和YesNo那么这应该没问题:

Sub LastModifiedFile()

    Dim fileObject As Object
    Dim file As Object
    Dim modPath As String

    modPath = "\\jdshare\pdcmaterials\5_Tools\FTP\Cancelled_Report.txt"
    Set fileObject = CreateObject("Scripting.FileSystemObject")
    Set file = fileObject.GetFile(modPath)

    Dim msgBoxStatement As String

    If DateAdd("d", -5, Now) < file.DateLastModified Then
        msgBoxStatement = "This file is NOT older than 5 days!" & vbCrLf & _
            "Should it be deleted?"
    Else
        msgBoxStatement = "This file is older than 5 days!" & vbCrLf & _
            "Should it be deleted?"
    End If        

    Select Case MsgBox(msgBoxStatement, vbYesNo Or vbQuestion, "Delete?")        
        Case vbYes
            'run the for deletion
        Case vbNo
            'do not run the code for deletion
    End Select

End Sub
Run Code Online (Sandbox Code Playgroud)