Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如果第一封没有回复,请发送另一封电子邮件_Vba_Outlook - Fatal编程技术网

Vba 如果第一封没有回复,请发送另一封电子邮件

Vba 如果第一封没有回复,请发送另一封电子邮件,vba,outlook,Vba,Outlook,我设计了一个宏,将带有附件的电子邮件发送到特定的电子邮件地址 如果收件人从未回复我的第一封电子邮件,是否可以发送提醒电子邮件 Sub-MonthlyInterco() mth=格式(日期添加(“m”、-1,日期),“mmmyy”) 调用SendFiles(“C:\Users\haha\Desktop\interco\”) 端接头 函数SendFiles(fldName为String,可选文件类型为String=“**”) 作为字符串的Dim fName 将卫星名称设置为字符串 Dim olApp

我设计了一个宏,将带有附件的电子邮件发送到特定的电子邮件地址

如果收件人从未回复我的第一封电子邮件,是否可以发送提醒电子邮件

Sub-MonthlyInterco()
mth=格式(日期添加(“m”、-1,日期),“mmmyy”)
调用SendFiles(“C:\Users\haha\Desktop\interco\”)
端接头
函数SendFiles(fldName为String,可选文件类型为String=“**”)
作为字符串的Dim fName
将卫星名称设置为字符串
Dim olApp作为Outlook.Application
将olMsg设置为Outlook.MailItem
将olAtt设置为Outlook.Attachments
设置olApp=Outlook.Application
设置olMsg=olApp.CreateItem(0)的电子邮件
设置olAtt=olMsg.Attachments
“把所有的
fName=Dir(fldName)
'只发送某些扩展名
'fName=Dir(fldName&FileType)
olAtt.Add fldName&“XYZ”和mth&“INTERCO STATEMENT.pdf”
调试。打印fName
fName=Dir
"发信息",
与奥尔姆格
.Subject=mth和“内部对账”
.To=”xxx@hotmail.com"
.CC=”yyy@hotmail.com"
.HTMLBody=“大家好,”&“

附件是”&mth&“interco时间表,如果”&“

1)有任何差异”&“
2)所有金额与您的interco余额相关”&“

谢谢。”&“

致以最良好的问候”&“
zzz”和“
” .展示 以 端函数
> > P>有两种基本的方法可以考虑。

第一种方法是使用事件。我不一定推荐这种方法,因为大多数人喜欢在处理事件之前积累一些经验。您可以编写一个例程,并告诉Outlook在每次发生特定事件时执行该例程。例如,有发送电子邮件事件和接收电子邮件事件。您可以编写每次发送电子邮件时都会执行的例程。我不会做太多的例行工作,因为你不想放慢你的正常工作。您可以将时间和收件人电子邮件地址添加到文本文件的末尾。类似的例行程序可以记录收到电子邮件时的时间和发件人电子邮件地址

另一个例程可以每天运行一次来处理这些文本文件。我会用Excel VBA编写这个例程,这样结果就可以写入工作表,这将帮助您开发宏。此宏必须将发送给John Doe的电子邮件与从John Doe收到的电子邮件进行匹配,并生成您尚未收到回复的电子邮件列表。这些电子邮件的接收者是您希望向其发送追逐者电子邮件的人

如果您对上述方法感兴趣,请将其分为几个部分。不要寻找一个你想做什么就做什么的例程,因为你找不到它。不要发布要求为您编写例程的问题,因为本网站是为程序员提供的,以帮助彼此开发;这不是一个免费的编码站点

查找Outlook事件。我认为Outlook VBA上的帮助不如Excel VBA上的帮助好,但它确实存在。查找所需的两个事件例程的示例。查找文本文件。如何附加到文本文件?这并不难。如何匹配发送和接收文本文件中的条目?也许最简单的起点是将文件内容复制到工作表中,然后按电子邮件地址排序。每次一步编写宏代码。如果你在某一步上有困难,请到这里寻求帮助。您可以问的问题数量没有限制,只要每个问题都显示了您尝试过的代码,并解释了哪些问题没有按照您希望/预期的方式工作

第二种方法是一个例程,每天搜索一次收件箱和发送的邮件,并提取事件例程记录的信息。我已经给了您一个链接,指向一个例行程序,该程序搜索收件箱并将每个电子邮件的选定属性输出到工作簿。这可能是你需要的例行程序的框架

您可以在收到的电子邮件正文中搜索以下字符串:“[CR][LF][CR][LF]于2016年11月4日星期五13:43 zzzz>写道:[CR][LF][CR][LF]”。几乎所有对你的电子邮件的回复都将包含这种格式的文本,其中zzzz将是你的姓名和地址xxxx@yyyy将是您的电子邮件地址。这可能有助于匹配


我试着给你一些想法。我怀疑您能否在发送和接收的电子邮件之间实现100%的完美匹配,但如果您缓慢地完成必要的步骤,您可以创建一组非常有用的宏。

我一周前向您发送了电子邮件X。我4天前收到了你的电子邮件Y。电子邮件Y是对X的回复,对早期电子邮件W的回复,还是新电子邮件未链接到我的任何电子邮件?通常,回复包含原始电子邮件的标题和文本。如果您可以找到该标题,则可以将回复链接到原始邮件。Outlook会将您的回复链接到原始邮件,但无法将他们的回复链接到您的原始邮件。这是你的大问题:链接发送和接收的电子邮件。这个答案会创建一个Excel工作簿,并将收件箱中每封电子邮件的详细信息输出到其中。我们的目标是向您展示(1)一封电子邮件在VBA宏中是什么样子的,(2)如何在收件箱中检查每封电子邮件。按照说明修改该宏并进行尝试。研究输出和宏。您的宏可以使用哪些信息?您如何在回复中找到原始电子邮件的标题?您将如何根据自己的需要调整宏。例如,您的电子邮件将不在收件箱中?我会首先为你发送电子邮件的每个人创建一个列表,显示你发送给他们的电子邮件以及他们发送给你的电子邮件。此列表将有助于识别您尚未收到回复的电子邮件,并有助于实现您真正想要的宏。@TonyDallimore这是电子邮件Y回复电子邮件X。但有时我会发送电子邮件X