如何将 Outlook 2007 收件箱中定义的子文件夹中收到的电子邮件中附加的 Excel 文件保存到 Windows 上的文件夹中?

2023-12-02

我需要将 Outlook 邮件中收到的 Excel 附件保存在收件箱中的特定子文件夹(每日最终)中,并知道该子文件夹中的所有电子邮件都将包含该 Excel 附加文件。我下面有一个使用 excel VBA 的示例,但它不起作用,所以请建议我

 Sub SaveAttachmentsToFolder()
 ' This Outlook macro checks a named subfolder in the Outlook Inbox
 ' (here the "daily final" folder) for messages with attached
 ' files of a specific type (here file with an "xls" extension)
 ' and saves them to disk. Saved files are timestamped. The user
 ' can choose to view the saved files in Windows Explorer.
 ' NOTE: make sure the specified subfolder and save folder exist
 ' before running the macro.
 On Error GoTo SaveAttachmentsToFolder_err
 ' Declare variables
 Dim ns As Namespace
 Dim Inbox As MAPIFolder
 Dim SubFolder As MAPIFolder
 Dim Item As Object
 Dim Atmt As Attachment
 Dim FileName As String
 Dim i As Integer
 Dim varResponse As VbMsgBoxResult
 Set ns = GetNamespace("MAPI")
 Set Inbox = ns.GetDefaultFolder(olFolderInbox)
 Set SubFolder = Inbox.Folders("daily final") ' Enter correct subfolder
name.
 i = 0
 ' Check subfolder for messages and exit of none found
 If SubFolder.Items.Count = 0 Then
 MsgBox "There are no messages in the Sales Reports folder.",
vbInformation , _
 "Nothing Found"
 Exit Sub
 End If
 ' Check each message for attachments
 For Each Item In SubFolder.Items
 For Each Atmt In Item.Attachments
 ' Check filename of each attachment and save if it has "xls" extension
 If Right(Atmt.FileName, 3) = "xls" Then
 ' This path must exist! Change folder name as necessary.
 FileName = "C:\Email Attachments\" & _
 Format(Item.CreationTime, "yyyymmdd_hhnnss_") &
Atmt.FileName
 Atmt.SaveAsFile FileName
 i = i + 1
 End If
 Next Atmt
 Next Item
 ' Show summary message
 If i > 0 Then
 varResponse = MsgBox("I found " & i & " attached files." _
 & vbCrLf & "I have saved them into the C:\Email Attachments folder." _
 & vbCrLf & vbCrLf & "Would you like to view the files now?" _
 , vbQuestion + vbYesNo, "Finished!")
 ' Open Windows Explorer to display saved files if user chooses
 If varResponse = vbYes Then
 Shell "Explorer.exe /e,C:\Email Attachments", vbNormalFocus
 End If
 Else
 MsgBox "I didn't find any attached files in your mail.",
vbInformation , "Finished!"
 End If
 ' Clear memory
SaveAttachmentsToFolder_exit:
 Set Atmt = Nothing
 Set Item = Nothing
 Set ns = Nothing
 Exit Sub
 ' Handle Errors
SaveAttachmentsToFolder_err:
 MsgBox "An unexpected error has occurred." _
 & vbCrLf & "Please note and report the following information." _
 & vbCrLf & "Macro Name: GetAttachments" _
 & vbCrLf & "Error Number: " & Err.Number _
 & vbCrLf & "Error Description: " & Err.Description _
 , vbCritical, "Error!"
 Resume SaveAttachmentsToFolder_exit
 End Sub

看来你是从网站上剪切粘贴的,但你不熟悉VBA。当您将代码粘贴到 VBA 代码窗口中时,它将突出显示有问题的行。然后,您应用您的知识来解决这些问题。例如,上面的这一行应该是一个语句:

MsgBox "There are no messages in the Sales Reports folder.",
vbInformation , _
 "Nothing Found"

Like so:

MsgBox "Message", buttons, "Title"

您可以将一条语句放在三行上,就像您拥有的那样,但是您必须使用行继续符(_),您只有一个,您需要两个。

MsgBox "There are no messages in the Sales Reports folder.", _
vbInformation , _
 "Nothing Found"

Here

FileName = "C:\Email Attachments\" & _
 Format(Item.CreationTime, "yyyymmdd_hhnnss_") &

你有一个额外的&。语句不能以 & 结尾

F1 键在这些情况下非常有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Outlook 2007 收件箱中定义的子文件夹中收到的电子邮件中附加的 Excel 文件保存到 Windows 上的文件夹中? 的相关文章

  • “是”运算符给我 False,我可以知道原因吗?为什么? [复制]

    这个问题在这里已经有答案了 在编写 MS Excel VBA 代码时 我遇到了一个简单的问题 如下所示 上面的一点问题都没有 下层有问题 它给了我 假 Dim my01 my02 Set my01 Sheets 1 Set my02 She
  • 64 位 Windows 7 上的 Excel 2003 自动更改对 SysWOW64\MSCOMCTL.OCX 的引用,因此 32 位 Excel 会抱怨

    在 Excel 2003 VBA 项目中 我使用 MSCOMCTL OCX 中的控件 也就是说 VBA 项目引用了 System32 MSCOMCTL OCX 当我在 64 位 Windows 7 系统上的 Excel 2003 中打开该项
  • Outlook 插件:从选定的日历中获取元素

    我正在创建 Outlook 加载项 我想知道如何从选定的日历中获取元素 例如 我需要从名为 myCalendar 的日历中获取所有约会项目 现在 我可以从所有日历中获取所有约会项目 谢谢你 这些额外的日历作为主日历文件夹的子文件夹提供 所以
  • 如何使用 Excel VBA 根据货币标准格式化列中的数字?

    我想格式化一列的所有单元格 数据是一个数字 我想从左边添加一个小数 之后只保留两位数 然后根据货币标准对其进行格式化 例如 Data Output 10000 100 00 112233 1 122 33 123456789 1 234 5
  • 如何使用 xlwings 从 Python 调用 Excel 宏?

    我读过API docs http docs xlwings org api html对于 xlwings 并在解释器中使用 Workbook 和 Sheet 对象 但我不知道如何从 Python 调用宏 如何使用 xlwings 从 Pyt
  • Excel VBA 中.Delete 和.Clear 的区别?

    有什么区别Worksheets 1 Cells Delete and Worksheets 1 Cells Clear 我问这个是因为我一直用 Clear清除我的工作表内容 但在我之前的帖子中我发现Worksheets 1 Cells De
  • 使用 If 语句执行 Do Until 直到达到特定值

    我正在处理一份大数据表 我需要代码从特定单元格中减去 直到该值大于某个数字 如果这个数字没有达到 我希望它变成0 例如如果A3 A2 gt Q5 then E3 A3 A2 if lt Q5 do A3 A1 如果这不起作用E2 0 我需要
  • VBA - 填充自定义功能区下拉列表/列表框

    我无法填充下拉列表 列表框 原始代码来自 https exceloffthegrid com inserting a dynamic drop down in ribbon https exceloffthegrid com inserti
  • 用户窗体上的类对象 TextBox 可用方法

    我注意到 当我为文本框创建类模块并在表单上使用它时 通过在表单 init 事件中通过 VBA 添加 Enter 或 Exit 方法都不可用 当然 如果我只是在表单中添加一个文本框 我可以让 DblClick 方法正常工作 因此我的类设置正确
  • 使用VBA复制垂直列并沿对角线粘贴

    我有一列数据 我们称之为 A 列 其中有 35 行数据 如何在此列上循环 然后将每个数据点粘贴到另一张工作表中 同时为每个循环循环增加列和行 换句话说 我寻求对角粘贴在第二张纸中 有没有一种简单的方法可以在 VBA 中执行此类操作 不要循环
  • 在 MS Outlook 中,报告所有未收到回复的已发送邮件

    我每天都会发送大量电子邮件 但常常无法跟踪哪些邮件得到了实际回复 有没有办法使用 VBA 脚本查看上周发送的所有消息 并检查他们是否收到回复 具体来说 是一份已发送电子邮件的报告 这些电子邮件尚未从至少一个发送到的地址收到回复 我了解一点
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • 如何找到特定程序的安装目录?

    我已经成功地编写了一些用于工作的 VBA 宏 这些宏基本上创建了一个数据文件 将其提供给一个程序并对该程序的输出进行后处理 我的问题是程序安装路径是硬编码在宏中的 并且安装在我同事的计算机上可能会有所不同 我首先想到的是 我可以从每个人那里
  • 使用 ObjPtr(Me) 返回自定义类实例的名称?

    我明白那个ObjPtr http support microsoft com kb 199824将返回内存中对象的地址 并且它指向一个名为 IUNKNOWN 的结构 并且其中编码了某种接口定义以公开对象结构 但我不知道如何确定一个对象的接口
  • 将包含宏的工作簿复制到不带宏的工作簿

    我能够复制工作簿 复制到所需位置 其中在后台包含宏 该副本还包含相同的宏 我的问题是我不希望这个重复的工作簿包含宏 谁能告诉怎么做吗 先感谢您 将您的工作簿保存为无宏 即简单地保存为 Excel 工作簿 对于我的 Excel 2007 这是
  • 在Excel中,我可以使用超链接来运行vba宏吗?

    我有一个包含多行数据的电子表格 我希望能够单击一个单元格 该单元格将使用该行中的数据运行宏 由于行数总是在变化 我认为每行的超链接可能是最好的方法 ROW MeterID Lat Long ReadX ReadY ReadZ CoeffA
  • 检查未绑定控件是否具有值的正确方法

    简单场景 一个表单和一个文本框 未绑定 Text1 If lt gt Text1 Then MsgBox Not Empty End If 上面的代码有效 表达方式 lt gt Text1如果文本框包含字符 则计算结果为 True 无论文本
  • 在 Excel 中使用 VBA 设置图像透明度

    有没有办法使用 VBA 脚本对图像应用一些透明度 我录制了一个 宏 但似乎没有录制艺术效果 我已经找到了如何制作形状 但没有找到图像 这需要几个步骤 将自选图形 如矩形 放置在工作表上 使用以下方法将您的实际图片嵌入矩形中 ShapeRan
  • 无法使用 VBA 代码从 Excel 连接到 Teradata - 无法通过网络访问 Teradata 服务器

    我一直在尝试使用 vba 代码从 Excel 连接到 Teradata 但收到以下错误 无法通过网络访问 Teradata Server 我已经能够从 Teradata SQL 助手成功连接 并且还成功 ping 通 Teradata 服务
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代

随机推荐