我有一个程序,该程序可以创建多封电子邮件,并将它们保存为.msg文件映射为“ Y:”的共享驱动器上的文件夹。每封邮件都有不同的收件人,主题和邮件正文。
为了使用我的Outlook发送这些消息,我编写了这段代码,但是它生成错误“ Object Required 424”,并且调试器突出显示“ Set MySource = .....”行。任何建议请
Sub SendMSGs()
Dim MyItem As Outlook.MailItem, MySource As Object, file As Variant
Set MySource = MyObject.GetFolder("Y:\UI_messages\")
For Each file In MySource.Files
Set MyItem = file.Name.msg
MyItem.Send
Next file
End Sub
答案 0 :(得分:0)
我尚未测试此代码,甚至未尝试对其进行编译。它修复了代码中最明显的错误,因此至少您会获得更好的错误类别。
将文件名从https://stackoverflow.com/a/19426859/973283转换为邮件项目的技术。
此代码需要引用“ Microsoft脚本运行时”。没有这个,File
,Folder
和FileSystemObject
是未知类型。
Sub SendMSGs()
Dim FileCrnt As File
dim FldrCrnt As Folder
Dim Fso As FileSystemObject
Dim ItemCrnt As MailItem
Dim Path As String
Path = "Y:\UI_messages\"
Set Fso = CreateObject("Scripting.FileSystemObject")
Set FldrCrnt = Fso.GetFolder(Path)
For Each FileCrnt In FldrCrnt.Files
If LCase(Right$(FileCrnt.Name, 4)) = ".msg" Then
Set ItemCrnt = Application.CreateItemFromTemplate(Path & FileCrnt.Name)
ItemCrnt.Send
End If
Next FileCrnt
End Sub
答案 1 :(得分:0)
应该是-示例
Option Explicit
Sub SendMSGs()
Dim MyItem As Outlook.MailItem
Dim MyObject As Object
Set MyObject = CreateObject("Scripting.FileSystemObject")
Dim MySource As Object
Set MySource = MyObject.GetFolder("C:\Temp\")
Dim oFile As Object
For Each oFile In MySource.Files
If LCase(Right$(oFile.Name, 4)) = ".msg" Then
Set MyItem = Application.CreateItemFromTemplate("C:\Temp\" & oFile.Name)
MyItem.Display
End If
Next oFile
End Sub
尝试使用Option Explicit
@Tony Dallimore Answer如果将 Dim FldrCrnt As Folder
更改为 Dim FldrCrnt As Object