Board logo

標題: [發問] 直接在EXCEL發MAIL [打印本頁]

作者: chu0077    時間: 2015-9-4 15:21     標題: 直接在EXCEL發MAIL

不好意思 小弟初學VBA  現在正在學習怎樣用EXCEL發MAIL  前幾天已請教過版內高手  不過用了幾天發現還是有一些問題. 以下是我原來的程式碼

Sub sendmail()
Dim objEmail As Object
Const SMTPSERVER = "msa.hinet.net" '使用 msa.hinet.net 傳送郵件

Set objEmail = CreateObject("CDO.Message") '建立 CDO 物件
With objEmail.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPSERVER
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With

objEmail.From = "[email protected]" '寄件者(網域必須存在)
objEmail.To = Range("ZZ1").Value '收件者
objEmail.CC = Range("ZZ2").Value
objEmail.BCC = Join(Array([V7], [V8], [V9], [V10], [V11], [V12], [V13], [V14], [V15], [V16]), "; ")
objEmail.Subject = Range("V5").Value '郵件主旨
objEmail.HTMLBody = Range("V6")  'HTML郵件內文
objEmail.Send
Set objEmail = Nothing
End Sub

小弟的問題如下

1. 檔案轉存到其他電腦時在發信時.會發生錯誤.例如 "執行階段錯誤 Automation錯誤". 不知道是不是網域的問題還是發信的net有問題?

2. 如果objEmail.BCC = Join(Array([V7], [V8], [V9], [V10], [V11], [V12], [V13], [V14], [V15], [V16]), "; ").  
想要將寄送範圍增大為 V7:V200. 這部分語法要改成怎樣會比較好.

3. objEmail.HTMLBody = Range("V6")   這部分是否也可以加大寄送郵件內文的範圍 例如V6:W8?

4. objEmail.Subject = Range("V5").Value '郵件主旨
objEmail.HTMLBody = Range("V6")  'HTML郵件內文
這兩個部分是否可以 以自訂表單的形式輸入?  例如這樣的 InputBox
[attach]21904[/attach]

5.  有無辦法崁入物件(例如其他檔案或是圖片)在"Z6"儲存格內.然後在發信出去時.可以將附件一併群發出去?

6. 由於MAIL內文都在儲存格內.有無辦法分段.使其文章不要從頭到尾都連在一起?

如果同時要滿足以上的需求.程式碼要如何更改會比較理想?抱歉小弟的問題比較多. 先跟各位大大們謝謝. 萬分感謝.
作者: ikboy    時間: 2015-9-5 12:11

您的問題以下網址應該都有齊答案
http://www.rondebruin.nl/tips.htm




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)