【发布时间】:2020-04-12 05:51:07
【问题描述】:
我收到的电子邮件包含 1 到 30 多个附件。我需要在我们的订单系统中重新输入他们的姓名。
我想获取所有附件的文件名列表,并将其显示在消息框中以便我可以复制它,或者将其直接放在剪贴板上。
我找到了我需要的部分。
我有一个循环遍历列表,这没有帮助。
Sub ListAttachments()
Dim a As Attachments
Dim myitem1 As Outlook.mailItem
Dim j As Long
Set myitem1 = ActiveExplorer().Selection.item(1)
Set a = myitem1.Attachments
For j = 1 To myitem1.Attachments.Count
MsgBox myitem1.Attachments.item(j).DisplayName ' or .Filename
Next j
End Sub
这是我尝试的另一个,但它只是将名字放在剪贴板上:
Sub CopyToClipboardTest()
Dim M As Outlook.mailItem
Dim Buf As MSForms.DataObject
Set M = ActiveExplorer().Selection.item(1)
Set Buf = New MSForms.DataObject
Buf.SetText M.Attachments.item(1).FileName
Buf.PutInClipboard
End Sub
【问题讨论】:
-
作为一个快速修复,为什么不在您的第一段代码中将
MsgBox替换为Debug.Print。这会将列表输出到即时窗口,您可以从中复制和粘贴。 -
这是为我办公室里的多人准备的,我不希望他们必须打开 VBA 来获取列表。现在我们的工作是将电子邮件保存为文本文件(文件另存为),然后打开它以获取附件列表。
标签: vba outlook clipboard attachment