【发布时间】:2018-09-18 23:02:07
【问题描述】:
我想在用户表单中选择特定值,并根据选择重新格式化电子邮件模板并替换文本,或者只是打开一封空电子邮件并将键/文本发送到电子邮件标题、正文等(名称、姓氏等值)
用户表单。
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub TextBox3_Change()
End Sub
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "Form1"
.AddItem "Form2"
End With
With ComboBox2
.AddItem "Mr"
.AddItem "Miss"
.AddItem "Mrs"
.AddItem "Ms"
End With
With ComboBox3
.AddItem "You"
.AddItem "He"
.AddItem "She"
End With
End Sub
执行按钮代码。
Private Sub CommandButton1_Click()
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _
ComboBox1 = "" Or ComboBox2 = "" Or ComboBox3 = "" Then
MsgBox ("Fill in all Boxes")
End If
End Sub
Sub template()
Dim myItem As Outlook.MailItem
Dim strContact As String
Dim strHTML As String
Dim typeofapplication As String
Dim title As String
Dim name As String
Dim surename As String
Dim expierydate As String
Dim gender As String
typeofapplication = ComboBox1.Value
title = ComBox2.Value
name = TextBox1_Change.Value
surename = TextBox2_Change.Value
expierydate = TextBox3_Change.Value
gender = ComBox3.Value
Set myItem = Application.CreateItemFromTemplate("C:\test.oft")
strHTML = myItem.HTMLBody
myItem.Display
End Sub
代码在“填写所有框”之前有效。按下 OK 按钮后,它会停在myItem.Display。
如果我不使用用户表单,则可以打开模板。
【问题讨论】:
-
如果您的代码在单击 CommandButton1 后应该可以工作,那么您应该调用模板 sub。在 end if 之后调用模板,在 end if 之前退出 sub。
-
我已尝试将子模板添加到 CommandButton1_Click。它停在 myItem.Display
-
停止是什么意思?它会返回错误吗?你能说得具体点吗?
-
是的,当我调试时它指的是行“myItem.Display”