Присоединить подпись в Outlook с помощью Excel Macro - PullRequest
0 голосов
/ 17 декабря 2018

Я надеюсь, что вы можете помочь мне, так как я вырываю свои волосы, хотя все, что говорит мне мой Google, это должно сработать ...

Я пытаюсь создать макрос, который отправляет электронное письмо из excel.Это работает, но я должен вручную добавить свою подпись перед отправкой.Не конец света, но тем не менее раздражает.

Когда я пытался добавить код для добавления моей подписи по умолчанию, он применяет мою подпись, но удаляет остальную часть тела .... ПОЖАЛУЙСТА, ПОМОГИТЕ!

Sub email()

        Dim Outlook_App As Object
        Dim Outlook_Mail As Object
        Dim emailBody  As String
        Dim ToBody As String
        Dim CCBody As String
        Dim BCCBody As String

        Set Outlook_App = CreateObject("Outlook.Application")
        Set Outlook_Mail = Outlook_App.CreateItem(0)

        ToBody = ThisWorkbook.Sheets("Test").Range("N9")
        CCBody = ThisWorkbook.Sheets("Test").Range("N10")
        BCCBody = ThisWorkbook.Sheets("Test").Range("N11")

        emailBody = "<BODY style=font-size:11pt;font-family:Calibri>Hi <br> <br>" & _
        "Your work has been randomly sampled. I have submitted your feedback on the Database. <br> <br>" & _
        "Please can you go in to review and accept your feedback within the next <b>5 working days?</b> <br> <br>" & _
        "<a href= """ & ThisWorkbook.Sheets("Test").Range("N12") & """>User Guide – How to Accept Feedback</a> <br>"

        On Error Resume Next

            With Outlook_Mail

                 .Display
                '.To = ToBody
                '.CC = CCBody
                '.bcc = BCCBody
                .Subject = "Feedback - Action Required"
                .HTMLBody = emailBody & .HTMLBody

            End With

        On Error GoTo 0

        Set Outlook_Mail = Nothing
        Set Outlook_App = Nothing

        End Sub

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Согласно моему поиску и тестированию, вы можете обратиться к следующему коду:

Sub addUpdate_Click()
Dim mailObj As MailItem
Dim emailBody, signature As String
Dim Outlook_App, Outlook_Mail As Object
Dim ToBody As String
Dim CCBody As String
Dim BCCBody As String

Set Outlook_App = CreateObject("Outlook.Application")
Set Outlook_Mail = Outlook_App.CreateItem(0)

ToBody = ThisWorkbook.Sheets("Test").Range("N9")
CCBody = ThisWorkbook.Sheets("Test").Range("N10")
BCCBody = ThisWorkbook.Sheets("Test").Range("N11")

With Outlook_Mail
    .BodyFormat = olFormatHTML
    .Display
End With
signature = Outlook_Mail.HTMLBody

Set mailObj = CreateItem(olMailItem)

emailBody = "<BODY style=font-size:11pt;font-family:Calibri>Hi <br> <br>" & _
        "Your work has been randomly sampled. I have submitted your feedback on the Database. <br> <br>" & _
        "Please can you go in to review and accept your feedback within the next <b>5 working days?</b> <br> <br>" & _
        "<a href= """ & ThisWorkbook.Sheets("Test").Range("N12") & """>User Guide – How to Accept Feedback</a> <br>"

        On Error Resume Next

            With Outlook_Mail

                 .Display
                '.To = ToBody
                '.CC = CCBody
                '.bcc = BCCBody
                .Subject = "Feedback - Action Required"
                .HTMLBody = emailBody & signature

            End With
On Error GoTo 0

        Set Outlook_Mail = Nothing
        Set Outlook_App = Nothing

End Sub

Ссылка от:

Добавление подписи по умолчанию для электронной почты Outlook VBA

Как добавить подпись по умолчанию в Outlook

0 голосов
/ 17 декабря 2018

Вы не можете просто объединить две строки HTML и ожидать верную строку HTML обратно.Два должны быть объединены.

В простейшем случае прочитайте свойство HTMLBody (после того, как вы вызвали Display), найдите подстроку "<body", найдите следующую ">" (это позаботится об элементе body с атрибутами), затемвставьте строку HTML (без элемента body, конечно).

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