我正在尝试使用VBA从Excel中的文件夹中发送最新的PDF文件。
我已经设法在Outlook VBA中执行此操作 - 我不确定在Excel中需要更改哪些内容。原因是Outlook宏与定期运行的Excel宏冲突。
我的代码目前只附加了在过去30秒内创建的文件夹中的所有文件 - 只有一个PDF。
请注意,代码在Outlook中完美运行。
Sub SendFiles()
Dim objMail As Outlook.MailItem
Dim fso As Object
Dim strFile As String
Dim fsoFile
Dim fsoFldr
Dim dtNew As Date, sNew As String
Set fso = CreateObject("Scripting.FileSystemObject")
strFile = "C:\temp\" 'path to folder
Set fsoFldr = fso.GetFolder(strFile)
dtNew = Now - TimeValue(00:00:30) '30 seconds ago
For Each fsoFile In fsoFldr.Files
If fsoFile.DateCreated > dtNew Then
sNew = fsoFile.Path
Set objMail = Application.CreateItem(olMailItem)
With objMail
.To = "email@address.com"
.Subject = "Example"
.BodyFormat = olFormatPlain
.Attachments.Add sNew
.Importance = olImportanceHigh
.Send
End With
End If
Next fsoFile
End Sub
答案 0 :(得分:1)
一些缺陷:
您没有实例化任何Outlook应用程序对象
在Excel环境中,background-attachment
指向Application
Excel
Application
应为TimeValue(00:00:30)
并确保已将TimeValue("00:00:30")
库添加到您的VBA项目参考中:1)点击工具 - >参考2)滚动列表框直到Microsoft Outlook X.XX对象库条目并切换其复选标记以选择它3)单击"确定"按钮
然后你可以试试这个代码的重构:
Outlook