Мои вложения теряют свое первоначальное имя и отображаются как ProjectStatus.xlsx - PullRequest
0 голосов
/ 15 ноября 2018

В Windows 7 и Office 2007 я использовал код, который открывает новое электронное письмо в Outlook, прикрепляет файл и отправляет его.Код не мой, я нашел его где-то в интернете.Проблема в том, что теперь я использую Windows 10 и Office 2016, и использование одного и того же кода приводит к другим результатам:

  • Исходное имя файла, скажем, например, «Products.xlsx»,изменено на «ProjectStatus.xlsx» (любое имя файла всегда изменяется на «ProjectStatus.xlsx»)
  • Если я открою файл, Excel откроет его и покажет оригинальное имя файла («Products.xlsx»))
  • Если я отправляю его, иногда получатели видят в прикрепленном файле «ProjectStatus.xlsx», а иногда - «Products.xlsx».Но всегда происходит следующее: если они открывают файл, то в Excel он выглядит как «Products.xlsx»

Мне нужно, чтобы имя файла всегда отображалось с исходным именем.Как я могу это сделать?

Это код, который я использую, и выполняется как из Access 2016, так и из Excel 2016.

Sub MandaMailA(destinatarios As String, copia As String, subject As String, strbody As String, attachment1 As String, Optional attachment2 As String = "", Optional CO As String = "")

    Dim OutApp As Object
    Dim OutMail As Object
    Dim SigString As String
    Dim Signature As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)



    'Change only Mysig.htm to the name of your signature
    SigString = Environ("appdata") & _
                "\Microsoft\Firmas\VBA.htm"

    If Dir(SigString) <> "" Then
        Signature = GetBoiler(SigString)
    Else
        Signature = ""
    End If

    On Error Resume Next

    With OutMail
        .To = destinatarios
        .CC = copia
        .BCC = CO
        .subject = subject
        .HTMLBody = strbody & "<br>" & Signature
        .Display    'or use .Display
        .Attachments.Add attachment1, olByValue, 1, "ProjectStatus"
        .Attachments.Add attachment2, olByValue, 1, "ProjectStatus"

    End With

    On Error GoTo 0
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Я заметил, что этот код включает слово "ProjectStatus"но, честно говоря, я не очень хорошо знаю VBA.

Заранее спасибо !!

1 Ответ

0 голосов
/ 15 ноября 2018

Простое чтение документации Attachments.Add - это все, что вам нужно, особенно раздел о необязательном параметре DisplayName:

Этот параметр применяется, только если почтаЭлемент имеет формат Rich Text, а для Type задано значение olByValue: имя отображается в объекте Inspector для вложения или при просмотре свойств вложения.Если почтовый элемент находится в формате обычного текста или HTML, то вложение отображается с использованием имени файла в параметре Source.

Поэтому, если вы всегда хотите всегда использовать исходное имя файла, просто удалитеэкземпляры , "ProjectStatus".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...