Vba Office的VB脚本:从1个特定电子邮件地址剥离附件?
我有我从我们在这里工作时使用的现有(和正在工作的)副本中修改的脚本的基本部分(见本文末尾)。我需要这个脚本来查看发件人,如果它来自“esupport@domainname.biz“,然后我希望它剥离附件并将其转储到我们这里的云驱动器上。但我只希望附件,如果从该特定的电子邮件地址。我们有其他进程使用同一个帐户,我不希望这些代码干扰它们中的任何一个。如果你能朝着正确的方向努力,我将不胜感激,非常感谢 我的代码:Vba Office的VB脚本:从1个特定电子邮件地址剥离附件?,vba,email,outlook,Vba,Email,Outlook,我有我从我们在这里工作时使用的现有(和正在工作的)副本中修改的脚本的基本部分(见本文末尾)。我需要这个脚本来查看发件人,如果它来自“esupport@domainname.biz“,然后我希望它剥离附件并将其转储到我们这里的云驱动器上。但我只希望附件,如果从该特定的电子邮件地址。我们有其他进程使用同一个帐户,我不希望这些代码干扰它们中的任何一个。如果你能朝着正确的方向努力,我将不胜感激,非常感谢 我的代码: Public Sub saveAttachtoDisk(itm As Outlook.M
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()调用…这就是它失去我的地方。我不知道我在叫什么。而且,你说得对,我没有扳机。。我仍然可以通过告诉它手动运行来测试代码吗?有可能吗?杰里米,这个答案对你有帮助吗?