У меня есть пользовательская форма с информацией и информацией. Когда я нажимаю «Demander Attest». (cbAskAttestation
), которую вы можете увидеть здесь:
это готовит мне письмо:
Однако, как заменить данные в матрице электронного письма данными в текстовом поле формы пользователя? Я хотел бы заменить текст в правом столбце таблицы электронной почты на текст в пользовательской форме. Например, замените «GRADE» в электронном письме на SAP.
Приложение
Данные в пользовательской форме ufReservistInformations поступают из этого кода:
Sheets("RECAP").Cells(Lig, 2) = cboFunction
Sheets("RECAP").Cells(Lig, 5) = cboSexReservist
Sheets("RECAP").Cells(Lig, 6) = cboRankReservist
Sheets("RECAP").Cells(Lig, 7) = txtIncorporationNumberReservist
Sheets("RECAP").Cells(Lig, 8) = txtBsnReservist
Sheets("RECAP").Cells(Lig, 9) = txtBirthdateReservist
Sheets("RECAP").Cells(Lig, 10) = txtAgeReservist
Sheets("RECAP").Cells(Lig, 11) = txtBirthplaceReservist
Sheets("RECAP").Cells(Lig, 12) = txtAddressReservist
Sheets("RECAP").Cells(Lig, 13) = txtZipcodeReservist
Sheets("RECAP").Cells(Lig, 15) = txtPhoneReservist
Sheets("RECAP").Cells(Lig, 17) = txtEmailReservist
Sheets("RECAP").Cells(Lig, 18) = txtContactReservist
Sheets("RECAP").Cells(Lig, 19) = txtJobReservist
Sheets("RECAP").Cells(Lig, 20) = txtEsrReservist
Sheets("RECAP").Cells(Lig, 21) = cboLengthContractReservist
Sheets("RECAP").Cells(Lig, 22) = txtEndEsrReservist
Sheets("RECAP").Cells(Lig, 23) = cboSav1Reservist
Sheets("RECAP").Cells(Lig, 24) = txtSav1CommentReservist
Sheets("RECAP").Cells(Lig, 25) = txtRetrainingReservist
Sheets("RECAP").Cells(Lig, 26) = txtFmaChiefReservist
Sheets("RECAP").Cells(Lig, 27) = txtVsaReservist
Sheets("RECAP").Cells(Lig, 28) = txtNextVsaReservist
И я создаю письмо следующего шаблона:
Sub CreateEmailfromTemplate(ByVal email As String, ByVal pathToTemplate As String)
Dim obApp As Object
Dim NewMail As Outlook.MailItem
Set obApp = Outlook.Application
'Change the template file folder path according to your case
Set NewMail = obApp.CreateItemFromTemplate(pathToTemplate)
With NewMail
.To = email
End With
NewMail.Display
Set obApp = Nothing
Set NewMail = Nothing
End Sub
Попытка ответа Роберта Барона, описанного ниже
Я пытался использовать функцию замены.
Dim obApp As Object
Dim NewMail As Outlook.MailItem
Set obApp = Outlook.Application
'Change the template file folder path according to your case
Set NewMail = obApp.CreateItemFromTemplate("\\bspp.fr\Travail\CCL1\MTMA\Groupe Adjudant de Compagnie\RESERVISTES\CORRESPONDANCE\Demande d'attestation de recyclage.msg")
With NewMail
mailBody = .Body
End With
mailBody = Replace(mailBody, "1cl", cboRankReservist)
With NewMail
.Body = mailBody
End With
NewMail.Display
Set obApp = Nothing
Set NewMail = Nothing
И все же результаты не сохраняют массив и отображают столбец слов. Действительно, вот результаты только после использования mailBody = Replace(mailBody, "1cl", cboRankReservist)
Bonjour,
J’ai l’honneur de vous demander une attestation de formation continue équipier-secouriste pour le personnel suivant :
Groupement
1 GIS
Compagnie
20
N° incorporation
91109
Grade
1cl
...