1
我在Excel VBA初學者,想一些幫助,請。Excel的VBA - 驗證是否選中的複選框並連接相應的文本框的值
在客戶註冊用戶窗體我有一個「接觸」部分,該部分將被保留以接收最多5個聯繫人電子郵件,正在註冊客戶。在此窗體,我有以下對象:
- 5文本框(
txtEmail1
,txtEmail2
,txtEmail3
,...) - 5個複選框(
ckboxEmail1
,ckboxEmail2
,ckboxEmail3
,...) - 1命令按鈕(
bSendEmail
)
這些電子郵件將在文本框中鍵入,並且按鈕將被用來打開Outlook應用程序與已在「收件人」字段的電子郵件。複選框將用於定義哪些電子郵件將包含在「收件人」字段中。
這纔是我的疑問。我怎樣才能確認哪些複選框被選中,從文本框中只使用(連接)他們的電子郵件?
實踐實施例1:
TxtEmail1.value = [email protected]
TxtEmail2.value = [email protected]
TxtEmail3.value = empty
TxtEMail4.value = [email protected]
TxtEMail5.value = empty
CkboxEmail1.value = true
CkboxEmail2.value = true
CkboxEmail3.value = false
CkboxEmail4.value = true
CkboxEmail5.value = false
當我按下按鈕,下面的陣列必須被傳遞給 「爲」 屬性:
.To = "[email protected];[email protected];[email protected]"
實施例2:
TxtEmail1.value = [email protected]
TxtEmail2.value = [email protected]
TxtEmail3.value = empty
TxtEMail4.value = [email protected]
TxtEMail5.value = empty
CkboxEmail1.value = false
CkboxEmail2.value = false
CkboxEmail3.value = false
CkboxEmail4.value = true
CkboxEmail5.value = false
當我按下按鈕,只有4電子郵件將被傳遞到了「爲了」屬性,因爲只有它s複選框是真實的:
.To = "[email protected]"
Bellow是我用來在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
在此先感謝和抱歉,不好的英語,不是我的母語。
感謝您的快速回復!關於複選框的代碼工作完美(非常感謝),但我不知道爲什麼Excel忽略分號。 Outlook的「收件人」字段中的結果如下所示: 'email1 @ example.comemail2 @ example.comemail4 @ example.com' 電子郵件不會以分號分隔。 –
@IgorSousa Ahh - 也許'outlookMail'對象會自動修剪任何結尾的';'。我將編輯代碼以使用臨時變量。 – YowE3K
你太棒了!它的工作,非常感謝你! –