2013-09-30 71 views
0

我有一個程序在每個星期天創建索引。在星期天,以.001後綴的日期命名文件夾。格式是YYYYMMDD.001檢查文件夾名稱變量中的4個子文件夾退出

例: 20130929.001

在該文件夾4個文件夾中創建他們總是有相同的名字: TEXT1 TEXT2 TEXT3 文本4

我期待有一個腳本驗證文件夾是否正在創建,如果其中一個子文件夾不存在,則會發送電子郵件。

這個想法是安排腳本在同一日期運行,但是應該在創建文件夾之後運行。如果預期的文件夾完成,則會發出通知。

我的問題是處理變量日期路徑的第一部分和最後一部分是一致的,但具有日期的日期文件夾將每週更改。

N:\應用\ WORLDOX \ isysdb \ drive_n \文本\ 0.001 \ TEXT1

任何建議,將不勝感激。

謝謝, ELM

+0

如果你想要*預定*的東西,那麼Visual Basic for ** Applications **不是你想要的。 VBA在*託管的*平臺上運行,例如Word或Excel。 – crashmstr

+0

@crashmstr爲什麼OP不能在Excel文件中使用'Application.OnTime',例如? –

+2

@DavidZemens在應用程序沒有運行時工作嗎?無論哪種方式,除非代碼實際上在應用程序域中執行某些操作(例如,創建或編輯Word文檔),否則VBA似乎並不是該作業的正確工具。 – crashmstr

回答

0

此代碼檢查如果文件夾中。如果不會發送郵件。

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 = "[email protected]" 
     .From = "[email protected]" 
     .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 
相關問題