gpt4 book ai didi

excel - 我可以使用文件中的内容作为名称在 Outlook 中自动保存 Excel 附件吗?

转载 作者:行者123 更新时间:2023-12-04 21:03:48 25 4
gpt4 key购买 nike

我每天都会收到电子邮件,其中会报告我的网站前一天的表现。这些报告有一个通用名称,我无法从源头更改它。我通过 Outlook 规则运行以下脚本,每当收到具有特定条件的消息并将报告保存到文件名中包含昨天日期的给定位置时:

    Public Sub Save Reports (itm As Outlook.MailItem)

Dim ObjAtt As Outlook.Attachment
Dim SaveFolder As String

For Each ObjAtt In itm.Attachments
If InStr(ObjAtt.DisplayName, ".csv") Then


FileName = (ObjAtt.FileName)
NewName = "System Performance " & Format(Date - 1, "DD-MM-YYYY") & Right(FileName, 4)
SaveFolder = "C:\Users\Me\Documents\"

ObjAtt.SaveAsFile SaveFolder & NewName

End If

Set ObjAtt = Nothing

Next
End Sub

问题是,如果我们在流程中的任何地方有任何问题,我今天可能会收到一封实际上与上周而不是昨天有关的电子邮件。如果发生这种情况,上面的脚本不起作用,它需要我手动保存。

我可以解决这个问题的一种方法是,如果我能找到一种方法来从我保存的附件 CSV 文件中的单元格中提取数据,然后将其用作文件名。对于我要保存的每个文件,单元格 B1 都有我需要在文件名中使用的日期。

我查看了 Stackoverflow 和其他互联网资源,试图找到可以让我这样做但无法解决的东西。

感谢下面的评论,我尝试编辑我的脚本以保存文件,然后打开文件并获取所需的数据,然后重命名文件但无济于事:
    Public Sub Save Reports (itm As Outlook.MailItem)

Dim ObjAtt As Outlook.Attachment
Dim SaveFolder As String
Dim xlApp As Object
Dim sourceWB As Excel.Workbook
Dim sourceSH As Excel.Worksheet
Dim strFile As String

For Each ObjAtt In itm.Attachments
If InStr(ObjAtt.DisplayName, ".csv") Then


FileName = (ObjAtt.FileName)
NewName = "System Performance " & Format(Date - 1, "DD-MM-YYYY") & Right(FileName, 4)
SaveFolder = "C:\Users\Me\Documents\"

ObjAtt.SaveAsFile SaveFolder & NewName

Set xlApp = CreateObject("Excel.Application")
With xlApp
.Visible = True
.EnableEvents = False
End With

strFile = SaveFolder & NewName

Set sourceWB = Workbooks.Open(strFile, , False, , , , , , , True)
Set sourceSH = sourceWB.Worksheets("Sheet2")
sourceWB.Activate
Range("B1").Select
newdate = ActiveCell.Value
Set sourceWB = Nothing
Set sourceSH = Nothing
xlApp.Quit
Set xlApp = Nothing
Name SaveFolder & NewName As SaveFolder & newdate

End If

Set ObjAtt = Nothing

Next
End Sub

最佳答案

Outlook 对象模型不为此提供任何属性或方法。您需要先将附件保存在磁盘上,然后打开它以读取单元格。 SaveAsFile Attachment 类的方法将附件保存到指定路径。

您也可以尝试使用低级 API - 扩展 MAPI 读取附件的二进制内容。属性名称是 PR_ATTACH_DATA_BIN,其中包含通常通过 OLE IStream 接口(interface)访问的二进制附件数据。见 Opening an Attachment了解更多信息。您也可以考虑使用围绕该 API 的任何第三方包装器(例如 Redemption)。

关于excel - 我可以使用文件中的内容作为名称在 Outlook 中自动保存 Excel 附件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29604992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com