【发布时间】:2017-05-12 06:08:23
【问题描述】:
我是 Excel VBA 的初学者,希望得到一些帮助。
在客户注册用户表单中,我有一个“联系人”部分,该部分将保留用于接收正在注册的客户的最多 5 封联系电子邮件。在这个用户表单中,我有以下对象:
- 5 个文本框(
txtEmail1、txtEmail2、txtEmail3、...) - 5 个复选框(
ckboxEmail1、ckboxEmail2、ckboxEmail3、...) - 1 个命令按钮 (
bSendEmail)
将在文本框中键入电子邮件,然后使用该按钮打开 Outlook 应用程序,其中电子邮件已经在“收件人”字段中。复选框将用于定义哪些电子邮件将包含在“收件人”字段中。
我的疑惑来了。如何验证选中了哪些复选框,以仅使用(连接)来自文本框中的电子邮件?
实例一:
TxtEmail1.value = email1@example.com
TxtEmail2.value = email2@example.com
TxtEmail3.value = empty
TxtEMail4.value = email4@example.com
TxtEMail5.value = empty
CkboxEmail1.value = true
CkboxEmail2.value = true
CkboxEmail3.value = false
CkboxEmail4.value = true
CkboxEmail5.value = false
当我按下按钮时,必须将以下数组传递给“.To”属性:
.To = "email1@example.com;email2@example.com;email4@example.com"
实例二:
TxtEmail1.value = email1@example.com
TxtEmail2.value = email2@example.com
TxtEmail3.value = empty
TxtEMail4.value = email4@example.com
TxtEMail5.value = empty
CkboxEmail1.value = false
CkboxEmail2.value = false
CkboxEmail3.value = false
CkboxEmail4.value = true
CkboxEmail5.value = false
当我按下按钮时,只有第四封电子邮件会被传递给“.To”属性,因为只有它的复选框为真:
.To = "email4@example.com"
下面是我用来在 bSendEmail Click 事件中打开 Outlook 应用程序的代码。
Private Sub bSendEmail_Click()
Dim outlookApp As Object
Dim outlookMail As Object
On Error GoTo error_outlook
Set outlookApp = CreateObject("Outlook.Application")
Set outlookMail = outlookApp.CreateItem(0)
On Error GoTo 0
On Error Resume Next
With outlookMail
.To = ""
.CC = ""
.BCC = ""
.Subject = ""
.Body = ""
.Importance = 2
.Display
End With
On Error GoTo 0
Set outlookMail = Nothing
Set outlookApp = Nothing
Exit Sub
error_outlook:
MsgBox("some message here...", vbOKOnly + vbExclamation, "ERROR - Outlook")
Exit Sub
End Sub
提前致谢,抱歉英语不好,不是我的母语。
【问题讨论】: