Подпись Outlook VBA

Я пытался вставить разные коды, чтобы получить подпись по умолчанию в Outlook, которая будет отображаться в конце этой строки кода при создании электронного письма. Какие-либо предложения?

Private Sub CommandButton1_Click()
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Dim signature As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Hello," & vbCrLf & vbCrLf & "I recently reviewed a call of yours and the information that we reviewed in our coaching session is as follows:" & vbCrLf & vbCrLf & _
              "Call Duration: " & Sheets("Sheet1 (13)").Range("j38").Value & vbCrLf & _
              "Date: " & Sheets("Sheet1 (13)").Range("j39").Value & vbCrLf & _
              "Coaching Feedback: " & Sheets("Sheet1 (13)").Range("J40").Value & vbCrLf & signature
                  On Error Resume Next
    With xOutMail
        .To = Range("D39")
        .CC = Range("G39")
        .BCC = ""
        .Subject = "Quality Audit Coaching"
        .Body = xMailBody
        .Display
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Посмотрите здесь: rondebruin.nl/win/s1/outlook/signature.htm

sous2817 17.01.2019 21:06

См. stackoverflow.com/questions/25820914/…

Dmitry Streblechenko 18.01.2019 00:41

И stackoverflow.com/questions/22233264/…

Dmitry Streblechenko 18.01.2019 00:44

Смотрите ниже ответ и дайте мне знать, если это сработало - спасибо

0m3r 19.01.2019 06:43
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
4
250
1

Ответы 1

Я вижу, что у вас есть переменные подписи Dim, но я не вижу, чтобы вы присваивали их какому-либо объекту.

Попробуйте следующее, если это не тело HTML

With xOutMail
    .To = Range("D39")
    .CC = Range("G39")
    .BCC = ""
    .Subject = "Quality Audit Coaching"
    .Display
    .Body = xMailBody & .Body
   ' .Send
End With

И если его тело HTML, измените его на .HTMLBody = xMailBody & .HTMLBody

Или вы можете установить Dim signature variable

Пример

Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)

With xOutMail
    .Display
     signature = .HTMLBody
End With

Свойство MSDN HTMLBody

Возвращает или задает строку, представляющую тело HTML указанного элемента. Свойство HTMLBody должно быть строкой синтаксиса HTML. Читай пиши.

Свойство MSDN .Body

Возвращает или задает строку, представляющую текстовое тело элемента Outlook. Читай пиши.

Объединение двух строк HTML — плохая идея — их действительно нужно объединить.

Dmitry Streblechenko 18.01.2019 00:02

Подпись не будет добавлена ​​к вновь созданному элементу, для этого вам нужно вызвать Display. MailItem.GetInspector тоже раньше делал это, но не больше (по состоянию на лето 2017 года).

Dmitry Streblechenko 18.01.2019 00:40

Опс, я забыл об обновлении ответа .display и протестировал его. Это работает. @DmitryStreblechenko .body должен работать, если у OP нет форматирования в его подписи.

0m3r 18.01.2019 02:32

Другие вопросы по теме