ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 33873|回复: 58

[求助] Excel自动发送邮件(按条件发送)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-2-9 22:39 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位朋友好,现在求助一下代码如何编写? 我已经编写了一些,但是不懂如何再写下去,需要写一个小程序
发送邮件, 邮件格式如下
邮件发送邮件地址 :附件Sheet2(CFD)U2

=========================================================================
致尊敬的经销商:
Dear Dealer:
                              
XXXXX广州分公司,由XXXX公司广州配送中心
委托,承运订单号为 (附件Sheet2(CFD)A2) 的零部件至(附件sheet2(CFD) F2)。
如需查询该票货物的运输状态,请浏览德迅公司的网页http://www.kn-portal.com/
您的查询号码为 (附件sheet2(CFD)B2).
                              
KN was authorized by Daimler Northeast Asia Parts Trading and Services Co., LTD
Guangzhou PDC to deliver automotive parts under PO   (附件Sheet2(CFD)A2) to
(附件sheet2(CFD) F2).
Regarding the transportation status of mentioned shipment, please check on KN website http://www.kn-portal.com/. Your tracking number is  (附件sheet2(CFD)B2).                              
                              
谢谢!
Thanks for your attention!
                              
                              
xxxxxxx分公司
xxxxxxxxx Guangzhou Branch Office

相应的邮件发送到T3, 附上A3,B3,F3单元格的信息,如此类推。 sheet2里面有多少条信息,就发多少条。 例如有5行信息,就发5个相应邮件,如果有10行信息,就发10条相应邮件。

衷心感谢帮忙!!!

[ 本帖最后由 canciaw 于 2009-2-9 22:42 编辑 ]

upload excel format 1-6.rar

22.91 KB, 下载次数: 734

TA的精华主题

TA的得分主题

发表于 2009-2-10 12:41 | 显示全部楼层

回复 1楼 canciaw 的帖子

Sub AutoMail()
Dim OutlookApp As Object
Dim MailItem As Object
Dim Recipient As Object
Dim i As Integer
For i = 2 To Sheets("CFD").[A65536].End(xlUp).Row

    Set OutlookApp = CreateObject("Outlook.Application")
    Set MailItem = OutlookApp.CreateItem(0)
    Set Recipient = MailItem.Recipients.Add(Sheets("CFD").Range("U" & i).Value)
    MailItem.Subject = "This is auto Email From Kuehne & Nagel Ltd Guangzhou Office"
    MailItem.Body = "致尊敬的经销商:" & vbNewLine & _
    "Dear Dealer:" & vbNewLine & _
    "                              " & vbNewLine & _
    "                              " & vbNewLine & _
    "XXXXX广州分公司,由XXXX公司广州配送中心" & vbNewLine & _
    "委托,承运订单号为 (附件" & Sheets("CFD").Range("A" & i).Value & ")的零部件至(附件" & Sheets("CFD").Range("F" & i).Value & ")。" & vbNewLine & _
    "如需查询该票货物的运输状态,请浏览德迅公司的网页http://www.kn-portal.com/。" & vbNewLine & _
   "您的查询号码为 (附件" & Sheets("CFD").Range("B" & i).Value & ")." & vbNewLine & _
    "                              " & vbNewLine & _
    "KN was authorized by Daimler Northeast Asia Parts Trading and Services Co., LTD" & vbNewLine & _
    "Guangzhou PDC to deliver automotive parts under PO   (" & Sheets("CFD").Range("A" & i).Value & ")   to" & vbNewLine & _
    "(" & Sheets("CFD").Range("F" & i).Value & ")." & vbNewLine & _
    "Regarding the transportation status of mentioned shipment, please check on " & vbNewLine & _
   "KN website http://www.kn-portal.com/. Your tracking number is  (" & Sheets("CFD").Range("B" & i).Value & ")." & vbNewLine & _
    "                              " & vbNewLine & _
    "                              " & vbNewLine & _
    "谢谢!" & vbNewLine & _
    "Thanks for your attention!" & vbNewLine & _
    "                              " & vbNewLine & _
    "                              " & vbNewLine & _
    "xxxxxxx分公司" & vbNewLine & _
    "Kuehne & Nagel Limited Guangzhou Branch Office"
    MailItem.Send
    Set OutlookApp = Nothing
    Set MailItem = Nothing
    Set Recipient = Nothing
Next i
End Sub

[ 本帖最后由 mineshine 于 2009-2-10 12:43 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-10 17:05 | 显示全部楼层
你好,mineshine,一万分感谢你的无私帮忙!!!!!!!!!!

我尝试一下能否成功!!!谢谢!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-10 18:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
您好,mineshine,我的邮件发送到第28封的时候,就会停止,告诉我执行有问题。

Sub AutoMail()
Dim OutlookApp As Object
Dim MailItem As Object
Dim Recipient As Object
Dim i As Integer
For i = 2 To Sheets("CFD").[A65536].End(xlUp).Row
    Set OutlookApp = CreateObject("Outlook.Application")
    Set MailItem = OutlookApp.CreateItem(0)
    Set Recipient = MailItem.Recipients.Add(Sheets("CFD").Range("U" & i).Value)
    MailItem.Subject = "This is auto Email From Kuehne & Nagel Ltd Guangzhou Office"
    MailItem.Body = "致尊敬的经销商:" & vbNewLine & _
    "Dear Dealer:" & vbNewLine & _
    "                              " & vbNewLine & _
    "                              " & vbNewLine & _
    "德迅货运代理有限公司广州分公司,由戴姆勒东北亚零部件服务公司广州配送中心" & vbNewLine & _
    "委托,承运订单号为 (附件" & Sheets("CFD").Range("A" & i).Value & ")的零部件至(附件" & Sheets("CFD").Range("F" & i).Value & ")。" & vbNewLine & _
    "如需查询该票货物的运输状态,请浏览德迅公司的网页http://www.kn-portal.com/。" & vbNewLine & _
    "您的查询号码为 (附件" & Sheets("CFD").Range("B" & i).Value & ")." & vbNewLine & _
    "                              " & vbNewLine & _
    "KN was authorized by Daimler Northeast Asia Parts Trading and Services Co., LTD" & vbNewLine & _
    "Guangzhou PDC to deliver automotive parts under PO   (" & Sheets("CFD").Range("A" & i).Value & ")   to" & vbNewLine & _
    "(" & Sheets("CFD").Range("F" & i).Value & ")." & vbNewLine & _
    "Regarding the transportation status of mentioned shipment, please check on " & vbNewLine & _
    "KN website http://www.kn-portal.com/. Your tracking number is  (" & Sheets("CFD").Range("B" & i).Value & ")." & vbNewLine & _
    "                              " & vbNewLine & _
    "                              " & vbNewLine & _
    "谢谢!" & vbNewLine & _
    "Thanks for your attention!" & vbNewLine & _
    "                              " & vbNewLine & _
    "                              " & vbNewLine & _
    "德迅货运代理有限公司广州分公司" & vbNewLine & _
    "Kuehne & Nagel Limited Guangzhou Branch Office"    在这一行出现黄色箭头,但是前28封是没有问题的。不知道为什么呢? 谢谢
    MailItem.Send
    Set OutlookApp = Nothing
    Set MailItem = Nothing
    Set Recipient = Nothing
Next i
End Sub

还有,以上您加进去的代码是什么意思呢?能否解释一下?不好意思。。。好想学习。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-10 18:26 | 显示全部楼层
主要是这句变量命令不明白.

For i = 2 To Sheets("CFD").[A65536].End(xlUp).Row

TA的精华主题

TA的得分主题

发表于 2009-2-10 19:15 | 显示全部楼层
请高手快出个招吧,肯定有不少的人需要这样的小程序。

[ 本帖最后由 wtb815 于 2009-2-10 19:18 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-2-11 09:05 | 显示全部楼层

回复 6楼 canciaw 的帖子

问题一:
因在Sheets("tracking report")里的数据只到第29列,从第30列开始没有数据,
但在Sheets("CFD")里,你的数据资料却到40列,而 F栏 你使用涵数VLOOKUP取值,
在Sheets("tracking report")里没有数据的情况下,F栏 涵数就会判断出错,
以至于程序运行到第29行开就报错。
解决方法:
Sheets("CFD")里的列数要对应到Sheets("tracking report")里有数据的列数,
没有对应到的删除。

问题二:
For i = 2 To Sheets("CFD").[A65536].End(xlUp).Row ......Next i
循环,从Sheets("CFD")的第2列开始发Mail,
一直到 Sheets("CFD").[A65536].End(xlUp).Row 有数据的最后一列。

[ 本帖最后由 mineshine 于 2009-2-11 09:09 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-11 15:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
mineshine兄,实在感谢你详尽的解释,谢谢,谢谢!!!

TA的精华主题

TA的得分主题

发表于 2009-2-11 22:07 | 显示全部楼层

敬请canciaw学友告诉大家有否成功

敬请canciaw学友说明一下邮件发的怎样?有否成功?如果成功能否把代码内容全部复制出来让更多的人分享。谢谢!

TA的精华主题

TA的得分主题

发表于 2009-2-11 22:16 | 显示全部楼层
For i = 2 To Sheets("CFD").[A65536].End(xlUp).Row
这句代码的含义是循环语句从第2行到工作表CFD的A列从下往上第一个不为空的单元格的行
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 15:25 , Processed in 0.049869 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表