標題:
[發問]
直接在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/)