Проблема Отправка электронной почты Outlook из Excel VBA При использовании шаблона

голоса
0

У меня есть предварительно сделанный шаблон Outlook, который я хочу, чтобы автоматически заполнить и отправить по нажатию одной кнопки.

Я попробовал несколько итераций этого кода , где я пытался заменить текст в шаблоне с помощью функций GetInspector и т.д., а также .HTMLBody = replace(....метод.

Мой код ниже работает НО только когда я использую .displayфункцию перед отправкой. Если удалить .display, электронная почта отправляет , но только содержит пустой шаблон , который я скопировал.

Public Sub SendRequests()

Dim ReqType As String
Dim MouldNPE As String
Dim Rev As String
Dim Cust As String
Dim CustCon As String
Dim CustEm As String
Dim Country As String
Dim PLPs As String
Dim Notes As String

'open loading bar
LoadingBar.Show vbModeless

'determine how many new requests have been added
NumNewReqs = UBound(RequestsToSend_Type) - LBound(RequestsToSend_Type)

'set loading bar parameters
LoadingBarMaxWidth = 350
If NumNewReqs = 0 Then LoadingBarDivisor = 1 Else LoadingBarDivisor = NumNewReqs
LoadingBarIncrement = LoadingBarMaxWidth / LoadingBarDivisor

'loop through all new requests
For i = 0 To NumNewReqs
    'make sure outlook is open
    On Error Resume Next
    Set OLApp = GetObject(, Outlook.Application)

    If OLApp Is Nothing Then
        Shell (OUTLOOK)
        Set OutApp = CreateObject(Outlook.Application)
        OutApp.ActiveWindow.WindowState = olMinimized
    Else
        Set OutApp = CreateObject(Outlook.Application)
    End If

    'extract mould number and rev for email subject
    MouldNPENum = RequestsToSend_MouldNPE(i) 'mould/npe number
    Rev = RequestsToSend_Rev(i) 'revision

    'open template
'    Set TempMail = OutApp.CreateItemFromTemplate(ThisWorkbook.Path & \RequestTemplate.oft)
'
'    'copy body of template and close
'    With TempMail
'        NewReqHTMLBody = .HTMLBody
'        .Close 1
'    End With
'
'    Set TempMail = Nothing

    'create new email
    Set OutMail = OutApp.CreateItemFromTemplate(ThisWorkbook.Path & \RequestTemplate.oft) 'OutApp.CreateItem(0)

    With OutMail
        .To = ewan.otoole@stoelzle.com
        .CC = 
        .BCC = 
        .Subject = New Pack Spec Request -  & MouldNPENum &   & Rev

        'open inspecor
        Set vInspector = OutMail.GetInspector
        Set wEditor = vInspector.WordEditor

        'add request data
        With wEditor
            .Bookmarks(ReqType).Range.Text = RequestsToSend_Type(i) 'request type
            .Bookmarks(MouldNPE).Range.Text = RequestsToSend_MouldNPE(i) 'mould/npe number
            .Bookmarks(Rev).Range.Text = RequestsToSend_Rev(i) 'revision
            .Bookmarks(Cust).Range.Text = RequestsToSend_Cust(i) 'customer
            .Bookmarks(CustCon).Range.Text = RequestsToSend_CustCon(i) 'customer contact
            .Bookmarks(CustEm).Range.Text = RequestsToSend_CustEma(i) 'customer email
            .Bookmarks(Country).Range.Text = RequestsToSend_Country(i) 'country

            If RequestsToSend_PLPs(i) = False Then PLPs = No Else PLPs = Yes 'plps
            Bookmarks(PLPs).Range.Text = PLPs
            Bookmarks(Notes).Range.Text = RequestsToSend_Notes(i)  'notes
        End With
        .Display
        .Send
    End With

    Set vInspector = Nothing
    Set wEditor = Nothing
    Set OutMail = Nothing
    Set OutApp = Nothing

    'increase loading bar size
    LoadingBar.LoadingBar.Width = LoadingBar.LoadingBar.Width + LoadingBarIncrement
Next i

'save workbook
ThisWorkbook.Save

'hide loading bar
Unload LoadingBar

Application.ScreenUpdating = True

'notify user
MsgBox All requests have been sent!, vbInformation, Pack Spec Requests

End Sub

Где я буду неправильно?

Задан 27/11/2018 в 15:11
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more