ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何在Excel中用VBA回复指定的Outlook邮件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-5 10:46 | 显示全部楼层 |阅读模式
问题是这样的:我每月初都会在Outlook中发一份进销存方面的报表,进货后更改报表,再用将更改后的报表附在邮件后回复自己之前发过的的那份报表邮件。于是采用以下代码:
Sub 发送进货后调整的报表()
'On Error Resume Next
Dim d, x, k, i
Dim nmsName As Outlook.Namespace
Dim inFolder As Outlook.MAPIFolder
Dim mi As Object
Dim m As MailItem
Set nmsName = Outlook.Application.GetNamespace("MAPI")
Set inFolder = nmsName.GetDefaultFolder(Outlook.olFolderSentMail)
For Each mi In inFolder.Items
    If mi.Class = 43 Then
        Set m = mi
        If (m.Subject = Month(Date) - 1 & "月份库存报表") And (Format(m.SentOn, "yyyy-mm") = Format(Date, "yyyy-mm")) Then
            'm.Display
            m.ReplyAll.Body = "gfh"
            m.ReplyAll.Display
         End If
    End If
Next
End Sub

以上代码能打开我之前的那个主题为“6月份库存报表”的邮件的回复界面,显示了那份邮件的内容及新内容的光标插入点,但回复内容"gfh"却没有被自动加进去
不知为什么?如何解决?望路过的大神帮忙看看......

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-5 11:45 | 显示全部楼层
由于申核耽搁了一些时间,所以求助被潮水般涌现的新帖挤到后面了,只好自己再顶一下,见谅!......

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-5 14:12 | 显示全部楼层
VBA万岁 发表于 2018-7-5 11:45
由于申核耽搁了一些时间,所以求助被潮水般涌现的新帖挤到后面了,只好自己再顶一下,见谅!......

问题是这样的:我每月初都会在Outlook中发一份进销存方面的报表,进货后更改报表,再将更改后的报表附在邮件中回复自己之前发过的的那份报表邮件。于是采用以下代码:

Sub 发送进货后调整的报表()
Dim nmsName As Outlook.Namespace
Dim inFolder As Outlook.MAPIFolder
Dim m As MailItem
Set nmsName = Outlook.Application.GetNamespace("MAPI")
Set inFolder = nmsName.GetDefaultFolder(Outlook.olFolderSentMail)
For Each m In inFolder.Items
      If m.Class = 43 Then
         If (m.Subject = Month(Date) - 1 & "月份库存报表") And (Format(m.SentOn, "yyyy-mm") = Format(Date, "yyyy-mm")) Then
             m.ReplyAll.Body = "gfh"
              m.ReplyAll.Display
           End If
      End If
Next
End Sub


代码运行结果如下:
Excel中用VBA回复指定的Outlook邮件.gif
可见代码能打开我之前的那个主题为“6月份库存报表”的邮件的回复界面,显示了那份邮件的内容及新内容的光标插入点,但回复内容"gfh"却没有被自动加进去。附件也加不进去。
不知为什么?如何解决?望路过的大神帮忙看看......

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-5 17:10 | 显示全部楼层
VBA万岁 发表于 2018-7-5 14:12
问题是这样的:我每月初都会在Outlook中发一份进销存方面的报表,进货后更改报表,再将更改后的报表附在 ...

百度关于关于用VBA回复Outlook指定邮件的文帖子很少,目前只发现以下帖子:
Outlook 怎么用VBA打开回复邮件窗口,并进入可编辑状态
这个帖子也只解决了一半的问题,剩下的一半期待有大神帮忙解决。

TA的精华主题

TA的得分主题

发表于 2018-7-6 07:30 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-6 08:56 | 显示全部楼层
闻启学 发表于 2018-7-6 07:30
我来试一试  哈哈哈哈

期待中......
一旦此路不通,权宜之计(笨办法)是:新建一个邮件,收件人同指定的待回复邮件。主题在待回复邮件主题之前添加“回复:”三字符。内容分3部分:一部分为回复的内容 & 换行 ;第二部分:“From: ” & 待回复邮件的发件人地址 & 换行 & “Sent:” & 待回复邮件的发送时间 & “To:”& 换行 & 待回复邮件的收件人地址& 换行 & “Cc: “ & 待回复邮件的抄送人地址& 换行 & “Subject: ” & 待回复邮件的主题 & 换行 ;第二部分:待回复邮件的内容。
新建邮件的VBA代码百度一大把。但我还是希望通过回复邮件的方式实现。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-6 09:02 | 显示全部楼层
VBA万岁 发表于 2018-7-6 08:56
期待中......
一旦此路不通,权宜之计(笨办法)是:新建一个邮件,收件人同指定的待回复邮件。主题在待 ...

而且,新建邮件为了做得更像回复邮件,还必须在内容的第一、二部分之间加一条水平线。这个须用HTMLBody方式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-6 11:57 | 显示全部楼层
VBA万岁 发表于 2018-7-6 09:02
而且,新建邮件为了做得更像回复邮件,还必须在内容的第一、二部分之间加一条水平线。这个须用HTMLBody方 ...

最新进展:已在4楼的链接贴中得到解决。
再次感谢cocojyg的帮助!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-6 12:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
VBA万岁 发表于 2018-7-6 11:57
最新进展:已在4楼的链接贴中得到解决。
再次感谢cocojyg的帮助!

更正,不是4楼的链接帖,而是在本人于Outlook版块所发的求助帖中得到解决:
如何在Excel中用VBA回复指定的Outlook邮件
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 06:32 , Processed in 0.037815 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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