|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 xmashigh 于 2012-2-16 12:26 编辑
- Private Sub CommandButton1_Click()
-
- On Error Resume Next
- Dim rowCount, endRowNo As Integer
- Dim objOutlook As New Outlook.Application
- Dim objMail As MailItem
- endRowNo = Cells(1, 1).CurrentRegion.Rows.Count
- Set objOutlook = New Outlook.Application
- Dim objData As New DataObject
- For rowCount = 2 To endRowNo
- Set objMail = objOutlook.CreateItem(olMailItem)
-
- With objMail
- .To = Cells(rowCount, 1).Value '"收件人"
- .CC = Cells(rowCount, 2).Value '"抄送人"
- .Subject = Cells(rowCount, 3).Value '"邮件主题"
- .HTMLBody = Cells(rowCount, 4).Value & getVal(rowCount) & " " & Cells(rowCount, 5).Value '正文
- .Display
- End With
- Set objMail = Nothing
- Next
- Set objOutlook = Nothing
- End Sub
- Function getVal(ByVal j As Integer) As String
-
- Dim i As Integer
- i = 6 '"你要发送表格的最左边一行行数"
- getVal = ""
- getVal = ""
- getVal = getVal & ""
- Do Until Cells(1, i) = ""
- getVal = getVal & ""
- i = i + 1
- Loop
- getVal = getVal & ""
- i = 6 '"你要发送表格的最左边一行行数"
- Do Until Cells(j, i) = ""
- getVal = getVal & ""
- i = i + 1
- Loop
- getVal = getVal & ""
- getVal = getVal & Cells(1, i) & ""
- getVal = getVal & Cells(j, i) & ""
- End Function
复制代码
不能换行的问题也解决了 因为vba引用后责成了 HTML代码
用<br/>可以换行
对应的空格是
设置字体是<div style="font-size:13px;font-family: Calibri;"> 文字 </div>
现在问题是同一发件人 还会分开发送不同邮件,每个邮件内一行表头 一行数据。 求在一个邮件内发送2行及2行以上数据的办法 详情见附件
VBA发邮件.rar
(16.43 KB, 下载次数: 445)
今天来了整理了一下 写了点说明 还有一个问题没解决,其他测试过了 完全没问题 HTML代码写有点麻烦
等有时间了 写个编码自动转换的小文件出来
VBA发邮件-最终版.zip
(70.28 KB, 下载次数: 1869)
现在这个表格效果是这样
如果收件人跟抄送人一样的话我想做到下图那样 合并数据列 求解
|
|