2017-04-14 23 views
1

電子メールに添付された毎日のシステム生成レポートをフォルダに保存しようとしています。Outlookの添付ファイルをフォルダに保存し、日付を付けてファイルの名前を変更してください

次に、添付ファイル名に日付(ファイルの変更日)を追加します。私は、ファイルをフォルダに保存することができます。しかし、名前を変更する作品は私にとってはうまくいかないようです。

名前変更の一部が機能しない理由を教えていただけますか?本当にありがとうございます!

Public Sub saveAttachtoBIFolder(itm As Outlook.MailItem) 
    Dim objAtt As Outlook.Attachment 
    Dim saveFolder As String 
    Dim fso As Object 
    Dim oldName As Object 

    Dim file As String 
    Dim DateFormat As String 
    Dim newName As Object 


    saveFolder = "C:\BI Reports" 


    Set fso = CreateObject("Scripting.FileSystemObject") 
    On Error Resume Next 

    For Each objAtt In itm.Attachments 
     file = saveFolder & "\" & objAtt.DisplayName 
     objAtt.SaveAsFile file 
     Debug.Print "file="; file ' the full file path printed on immediate screen 

     Set oldName = fso.GetFile(file) ' issue seems to start from here 
     DateFormat = Format(oldName.DateLastModified, "yyyy-mm-dd ") 
     newName = DateFormat & objAtt.DisplayName 
     oldName.Name = newName 

     Debug.Print "DateFormat="; DateFormat 'the date format printed on the immediate screen 
     Set objAtt = Nothing 
    Next 

    Set fso = Nothing 
End Sub 
+0

を割り当てますことにしますResume Nextは、エラーをバイパスする特定の目的がある場合にのみ使用し、On Error GoTo 0でオフにする必要があります。ここでは目的がないようです。エラー時に削除コードをデバッグできるようにエラーを表示するには、[次へ]を再開します。 – niton

答えて

1

あなたnewNameニーズstringNOT Objectので薄暗いnewName As Stringも、私はエラーでobjAtt.DisplayNamestring variableから

参照例

Set FSO = CreateObject("Scripting.FileSystemObject") 
For Each objAtt In itm.Attachments 
    File = saveFolder & "\" & objAtt.DisplayName 
    objAtt.SaveAsFile File 
    Debug.Print File ' the full file path printed on immediate screen 

    Set oldName = FSO.GetFile(File) ' issue seems to start from here 
    Debug.Print oldName 

    Dim newName As String 
    Dim AtmtName As String 

    AtmtName = objAtt.DisplayName 
    Debug.Print AtmtName 


    DateFormat = Format(oldName.DateLastModified, "yyyy-mm-dd ") 
    Debug.Print DateFormat 

    newName = DateFormat & " " & AtmtName 
    oldName.Name = newName 
    Debug.Print newName 'the date format printed on the immediate screen 
Next 
+1

ファイルの最後に日付を追加する方法はありますか? AtmtNameと "_"&DateFormatを逆にすることはできません。私はfilename.xlsx_2017-04-15を取得します。代わりに、どうすればよいのでしょうか?filename_2017-04-15.xlsx – NinjaWarrior

+0

@NinjaWarriorこれは良い質問です。新しい質問を投稿してください。私はあなたを助けようとします。 – 0m3r

関連する問題