VBA для загрузки вложения - PullRequest
       25

VBA для загрузки вложения

0 голосов
/ 26 апреля 2018

Я хочу загрузить вложения из электронной почты, идущей в определенную папку, я написал VB Script и установил правило для писем, отправляемых в эту папку.

Кажется, что все работает нормально, но когда загружает вложение, оно сохраняет его как «тип файла», а не как xlsx. И если я открою это, это все случайные глупости. Образец содержимого файла:

¬Ia

Я не могу понять, что я делаю неправильно, и я попробовал всю помощь, которую мог найти в Интернете.

Мой скрипт VB ниже.

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)

Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim strFileType As String
Dim DtString As String
Dim SName As String
Dim File_Name As String
Dim Full_Path As String

saveFolder = "\\path\path\path\path\Path\"

strFileType = ".xlsx"
DtString = Format(Now(), "mm-dd")
SName = itm.SenderName
File_Name = DtString & "_" & SName
Full_Path = saveFolder & "\" & File_Name

For Each objAtt In itm.Attachments
    objAtt.SaveAsFile Full_Path
    Set objAtt = Nothing
Next

End Sub

Я попытался добавить ".xslx" в конце, я попытался открыть экземпляр Excel, открыть файл, сохранить и закрыть.

Я попытался сохранить его как TXT-файл и открыть его. Любая помощь очень ценится.

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Используйте имя файла вложения.

objAtt.SaveAsFile saveFolder & "\" & objAtt.FileName
0 голосов
/ 27 апреля 2018

Должно быть

File_Name = DtString & "_" & SName & strFileType

Пример

Option Explicit
Private Sub saveAttachtoDisk(itm As Outlook.MailItem)
    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String
    Dim strFileType As String
    Dim DtString As String
    Dim SName As String
    Dim File_Name As String
    Dim Full_Path As String

    saveFolder = "\\path\path\path\path\Path\"

    strFileType = ".xlsx"

    DtString = Format(Now(), "mm-dd")

    SName = itm.SenderName

    File_Name = DtString & "_" & SName & strFileType

    Full_Path = saveFolder & File_Name
    Debug.Print Full_Path ' print on Immediate Window

    For Each objAtt In itm.Attachments
        objAtt.SaveAsFile Full_Path
        Set objAtt = Nothing
    Next

End Sub
0 голосов
/ 26 апреля 2018

изменение:

Full_Path = saveFolder & "\" & File_Name

до:

Full_Path = saveFolder & "\" & File_Name & strFileType
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...