Почему слово Temp появляется в начале имени файла - PullRequest
0 голосов
/ 06 мая 2019

Я сохраняю файл в папке Windows TEMP, чтобы добавить его в качестве вложения в мою электронную почту. Почему-то слово «Temp» постоянно добавляется к имени файла. Как это происходит и как это предотвратить?

ВНИМАНИЕ! В ThisWorkbook.Sheets("Other Data").Range("AK2").Value есть номер проекта, который не содержит слова "Temp"

Вот мой код для сохранения файла:

    Fname = Environ("temp") & _
    ThisWorkbook.Sheets("Other Data").Range("AK2").Value & ", " & _
    "review" & ".pdf"

Вот код Outlook:

Sub CreateNewOutlookAppointment()

Dim olApp As Outlook.Application
Dim olAppt As Outlook.AppointmentItem
Dim myInspector As Outlook.Inspector

Set olAppt = Nothing
Set olApp = Outlook.Application
Set olAppt = olApp.CreateItem(olAppointmentItem)

   Set myInspector = olAppt.GetInspector

   myInspector.Activate

    With olAppt
        .Subject = "review" & ", " & ThisWorkbook.Sheets("Other Data").Range("P23").Value
        ThisWorkbook.Sheets("Templates").Range("M202:M223").Copy
        .Display
        .GetInspector.WordEditor.Windows(1).Selection.PasteAndFormat wdPASTERTF

        .Attachments.Add Environ$("Temp") & _
        ThisWorkbook.Sheets("Other Data").Range("AK2").Value & ", " & _
        "review" & ".pdf"

    End With

End Sub

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Environ$("Temp") возвращает имя вашей временной папки, например, C:\Users\xyz\AppData\Local\Temp. Ваша ячейка (AK2), вероятно, содержит имя файла, который вы хотите дать файлу.

Когда вы объединяете эти две части, вы получаете что-то вроде C:\Users\xyz\AppData\Local\TempMyFile - поэтому вы создаете файл с именем TempMyFile в папке Local (или какой-либо родительской папке Temp на вашем компьютере).

Вам просто нужно добавить символ "\" между (Temp-) путем и именем файла.

0 голосов
/ 06 мая 2019

Примерно так:

Синтаксис

expression.Add( _Source_ , _Type_ , _Position_ , _DisplayName_ )

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

Sub AddAttachment() 
 Dim myItem As Outlook.MailItem 
 Dim myAttachments As Outlook.Attachments 

 Set myItem = Application.CreateItem(olMailItem) 
 Set myAttachments = myItem.Attachments 
 myAttachments.Add "C:\Test.doc", _ 
 olByValue, 1, "Test" 
 myItem.Display 
End Sub
...