2014-11-21 39 views
0

我試圖編寫一個Outlook宏,它需要一個特定的消息(下面的宏中看到的「選擇」消息),並根據其ReceivedTime屬性將消息的附件保存在文件夾中。目的是最終擴展宏以在Excel中打開附件並運行已經寫好的Excel宏,但我試圖從小處着手。Outlook VBA收到時間「無效的限定符」

但是,無論何時我嘗試運行下面的宏,它都表示ReceivedTime屬性是「無效限定符」。我從來沒有見過這個錯誤,也不知道它是什麼意思或做什麼。

Sub DailyPinkOL() 
    Call initMonths 
    Dim inbox As Folder 
    Dim att As Attachment 
    Dim FilePath As String 
    Dim SaveFolder As String 
    Dim mi As MailItem 
    Dim xlapp As Excel.Application 
    Dim xlwb As Excel.Workbook 
    Dim xlat As Excel.Workbook 
    Set inbox = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) 
    If Selection.Location <> olViewList Then Exit Sub 
    Set mi = Selection 
    Set att = mi.Attachments(1) 
    att.SaveAsFile Path:="path1\Current Year\" & months(mi.ReceivedTime.Month) & "\" & mi.ReceivedTime.Month & "-" & mi.ReceivedTime.Day & ".xlsx" 
    Set xlapp = CreateObject("Excel.Application") 
    Set xlwb = xlapp.Workbooks.Open("path2\file1") 
End Sub 

path1,path2和file1被實際的宏文件路徑和文件替換;爲了安全起見,我以這種方式複製了它。

回答

0

att.SaveAsFile Path:="path1\Current Year\" & months(mi.ReceivedTime.Month) & "\" & mi.ReceivedTime.Month & "-" & mi.ReceivedTime.Day & ".xlsx" 

有兩個誤區,據我看到:

mi.ReceivedTime.Month不存在;改爲月(mi.ReceivedTime)。

mi.ReceivedTime.Day does not exist;去日(mi.ReceivedTime),而不是

所以它應該是:

att.SaveAsFile Path:="path1\Current Year\" & month(mi.ReceivedTime) & "\" & month(mi.ReceivedTime) & "-" & day(mi.ReceivedTime) & ".xlsx" 

你也有其他代碼我不unterstand(和我的Outlook中引發錯誤)像 如果Selection.Location <> olViewList然後退出子 呼叫initMonths 但如果他們爲你工作,一切都很好....

最大

相關問題