Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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
从Excel回复Outlook邮件_Excel_Outlook_Reply_Vba - Fatal编程技术网

从Excel回复Outlook邮件

从Excel回复Outlook邮件,excel,outlook,reply,vba,Excel,Outlook,Reply,Vba,我试图在正文中使用给定的格式“ReplyToll” 我使用以下代码来搜索和显示邮件 Sub Test() Dim olApp As Outlook.Application Dim olNs As Namespace Dim Fldr As MAPIFolder Dim olMail As Variant Dim i As Integer Set olApp = New Outlook.Application Set olNs = olApp.GetNamespace("MAPI") Set

我试图在正文中使用给定的格式“ReplyToll”

我使用以下代码来搜索和显示邮件

Sub Test()

Dim olApp As Outlook.Application
Dim olNs As Namespace
Dim Fldr As MAPIFolder
Dim olMail As Variant
Dim i As Integer

Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
i = 1

For Each olMail In Fldr.Items
If InStr(olMail.Subject, "Application for Privilege Leave - Leave ID - Dev-PL-45252-4") <> 0 Then
olMail.Display

i = i + 1
End If
Next olMail
End Sub
子测试()
Dim olApp作为Outlook.Application
Dim-olNs作为名称空间
将Fldr设置为MAPI文件夹
以电子邮件作为变体
作为整数的Dim i
Set olApp=newoutlook.Application
Set olNs=olApp.GetNamespace(“MAPI”)
设置Fldr=olNs.GetDefaultFolder(olFolderInbox)
i=1
对于Fldr.项目中的每个olMail
如果InStr(olMail.Subject,“特权休假申请-休假ID-Dev-PL-45252-4”)为0,则
olMail.Display
i=i+1
如果结束
下一封邮件
端接头
我需要回复相同的主题和规定的机构和签名

这类似于在Outlook中打开邮件并单击“全部回复”按钮


我希望它从Excel中触发。

由于您使用的是早期绑定,请更改

Dim olMail As Variant

然后您将能够访问
olMail
项目的所有属性。其中之一是
.replyll

屏幕截图

If InStr(olMail.Subject, "Blah Blah") <> 0 Then
    olMail.Display
    olMail.ReplyAll

    DoEvents

    '
    '~~> Rest of the code
    '

    i = i + 1
End If

如果InStr(olMail.Subject,“诸如此类”)为0,则
olMail.Display
olMail.replyll
多芬特
'
“~~>代码的其余部分
'
i=i+1
如果结束
有一个replyll方法返回邮件对象
因此,如果您正在遍历一些邮件,那么这应该是可行的:

For Each oMail in Fldr.Items
    If InStr(olMail.Subject, "mysubject") <> 0 Then
        With oMail.ReplyAll
            .Subject  = oMail.Subject '~~> this is optional
            .Body = "your Body"
            '~~> all other stuff you need your mail to have
            .Display '~~> change to .Send if it is already ok
        End With
    End If
Next
Fldr.项目中每个oMail的

如果InStr(olMail.Subject,“mysubject”)为0,则
用oMail.ReplyAll
.Subject=oMail.Subject'~~>这是可选的
.Body=“你的身体”
“~~>您需要邮件拥有的所有其他东西
.显示“~~>更改为。如果已确定,则发送
以
如果结束
下一个
未测试,但应该很接近。

试试这个:

olMail.ReplyAll
olMail.ReplyAll.body = bodyMail & vbLF & .body

这永远不会起作用-从不使用ReplyAll返回的消息。
olMail.ReplyAll
olMail.ReplyAll.body = bodyMail & vbLF & .body