Vba Office的VB脚本:从1个特定电子邮件地址剥离附件?

Vba Office的VB脚本:从1个特定电子邮件地址剥离附件?,vba,email,outlook,Vba,Email,Outlook,我有我从我们在这里工作时使用的现有(和正在工作的)副本中修改的脚本的基本部分(见本文末尾)。我需要这个脚本来查看发件人,如果它来自“esupport@domainname.biz“,然后我希望它剥离附件并将其转储到我们这里的云驱动器上。但我只希望附件,如果从该特定的电子邮件地址。我们有其他进程使用同一个帐户,我不希望这些代码干扰它们中的任何一个。如果你能朝着正确的方向努力,我将不胜感激,非常感谢 我的代码: Public Sub saveAttachtoDisk(itm As Outlook.M

我有我从我们在这里工作时使用的现有(和正在工作的)副本中修改的脚本的基本部分(见本文末尾)。我需要这个脚本来查看发件人,如果它来自“esupport@domainname.biz“,然后我希望它剥离附件并将其转储到我们这里的云驱动器上。但我只希望附件,如果从该特定的电子邮件地址。我们有其他进程使用同一个帐户,我不希望这些代码干扰它们中的任何一个。如果你能朝着正确的方向努力,我将不胜感激,非常感谢

我的代码:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String

'Return sender's email

If Email.SenderEmailAddress = "esupport@domainname.biz" Then

    saveFolder = "v:\Anthony - Missing Invoices\Report"

     For Each objAtt In itm.Attachments

          objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName

          Set objAtt = Nothing

     Next

End Sub

不能直接以这种格式运行此运行代码。你必须通过考试

在代码中的某个位置单击,然后重复按F8键以单步执行代码。你不会得到回应

一个简单的示例,其中有一个打开的邮件项。 您可以按如下方式将itm传递给saveAttachtoDisk:

Sub run_saveAttachtoDisk
    dim currItem as mailitem
    set currItem = activeinspector.currentitem
    saveAttachtoDisk curritem
end sub
通常的方法是在规则中对传入邮件运行代码。在RunAScript中选择saveAttachtoDisk

可以在规则中指定发件人。如果不希望这样做,则取消对If/end If语句的注释

您可以执行“立即运行规则”来处理现有邮件

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)

    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String

    'If Email.SenderEmailAddress = "esupport@domainname.biz" Then

        saveFolder = "v:\Anthony - Missing Invoices\Report"

        For Each objAtt In itm.Attachments
            objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
        Next

    'end if

End Sub

所以你的问题是什么?到底是什么不起作用?我对标签表示歉意,有人建议这样做。虽然我的印象是vba和vb脚本是可交换的,因为visual basic内置于Office(vb脚本)中,但当我的代码失败时,会向我返回一个vba错误。我修复了标签。就它的功能而言。。。没有。当我运行它时,它什么也不做,也不返回消息框。它什么也不做,因为没有任何东西触发它运行。如果你想查看新邮件,你需要从Application.NewMail事件调用它。所以<代码>代码私有子应用程序\u NewMail()调用…这就是它失去我的地方。我不知道我在叫什么。而且,你说得对,我没有扳机。。我仍然可以通过告诉它手动运行来测试代码吗?有可能吗?杰里米,这个答案对你有帮助吗?