В 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.
Заранее спасибо !!