Vba 检查文件夹名称变量中是否有4个子文件夹存在

Vba 检查文件夹名称变量中是否有4个子文件夹存在,vba,Vba,我有一个每周日创建索引的程序。周日,将创建一个以日期命名的文件夹,后缀为.001。格式为YYYYMMDD.001 例如: 20130929.001 在该文件夹中创建了4个文件夹,它们的名称始终相同: 文本1 文本2 文本3 文本4 我期待有一个脚本验证文件夹正在创建,如果其中一个子文件夹不存在,那么将发送电子邮件 其想法是将脚本安排在同一日期运行,但应在创建文件夹之后运行。如果预期的文件夹已退出,则会发出通知 我的问题是处理可变日期路径的第一部分和最后一部分是一致的,但是带有日期的日期文件夹每周

我有一个每周日创建索引的程序。周日,将创建一个以日期命名的文件夹,后缀为.001。格式为YYYYMMDD.001

例如: 20130929.001

在该文件夹中创建了4个文件夹,它们的名称始终相同: 文本1 文本2 文本3 文本4

我期待有一个脚本验证文件夹正在创建,如果其中一个子文件夹不存在,那么将发送电子邮件

其想法是将脚本安排在同一日期运行,但应在创建文件夹之后运行。如果预期的文件夹已退出,则会发出通知

我的问题是处理可变日期路径的第一部分和最后一部分是一致的,但是带有日期的日期文件夹每周都会更改

N:\apps\WORLDOX\isysdb\drive\u N\Text\.001\TEXT1

如有任何建议,将不胜感激

谢谢,
ELM

此代码检查文件夹是否存在。如果没有,我会发邮件

Sub TestFolder()

    Dim fso As Object, MyFolder As String
    Dim folder1 As String, folder2 As String, folder3 As String, folder4 As String
    Set fso = CreateObject("Scripting.FileSystemObject")

    MyFolder = "C:\ YYYYMMDD.001\"

    folder1 = MyFolder & "TEXT1"
    folder2 = MyFolder & "TEXT2"
    folder3 = MyFolder & "TEXT3"
    folder4 = MyFolder & "TEXT4"

    If fso.FolderExists(folder1) = False Then
          SendMail "TEXT1"
    ElseIf fso.FolderExists(folder2) = False Then
         SendMail "TEXT2"
    ElseIf fso.FolderExists(folder3) = False Then
          SendMail "TEXT3"
    ElseIf fso.FolderExists(folder4) = False Then
          SendMail "TEXT4"
    End If


End Sub


Sub SendMail(folderName)

    Dim iMsg As Object
    Dim iConf As Object
    Dim Flds As Variant


    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1
    Set Flds = iConf.Fields

    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "ddddd"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Update
    End With

    With iMsg

        Set .Configuration = iConf
        .To = "test@gmail.com"
        .From = "test@gmail.com"
        .Subject = folderName & "does not exist" & " " & Date & " " & Time
        .TextBody = folderName & "does not exist" & " " & Date & " " & Time
        .Send
    End With

    Set iMsg = Nothing
    Set iConf = Nothing

End Sub

如果您希望安排某些内容,那么Visual Basic for Applications就不是您想要的。VBA在托管平台(如Word或Excel)中运行。@crashmstr为什么不能在Excel文件中使用
应用程序。例如,OnTime
?@DavidZemens在应用程序未运行时,这是否有效?无论哪种方式,除非代码实际在应用程序域中执行某些操作(例如,创建或编辑Word文档),否则VBA似乎不是该作业的正确工具。@Crashstr我倾向于同意这不是该作业的正确工具,但可能是OP熟悉的唯一工具?在这种情况下,您可以使用一些VBA/VBS自动化任务调度