Vba 将创建的电子邮件另存为.msg
我每天都在使用代码。它将标签转换为pdf,创建带有已创建pdf附件的电子邮件,并从一个范围中获取主题名称 例如,如果该范围包含四个传递引用,则代码将创建四封附有相同pdf的电子邮件 我想将这些创建的电子邮件以.msg的形式保存到Windows文件夹中 我尝试了SaveAs方法Vba 将创建的电子邮件另存为.msg,vba,outlook,Vba,Outlook,我每天都在使用代码。它将标签转换为pdf,创建带有已创建pdf附件的电子邮件,并从一个范围中获取主题名称 例如,如果该范围包含四个传递引用,则代码将创建四封附有相同pdf的电子邮件 我想将这些创建的电子邮件以.msg的形式保存到Windows文件夹中 我尝试了SaveAs方法 Sub Oval2_Click() Dim IsCreated As Boolean Dim i As Long Dim PdfFile As String, Title As String Dim OutlApp As
Sub Oval2_Click()
Dim IsCreated As Boolean
Dim i As Long
Dim PdfFile As String, Title As String
Dim OutlApp As Object
Dim sPath As String
Dim sName As String
Dim rng As Range, c As Range
Set rng = Range("B10:B14")
For Each c In rng.Cells
If c <> "" Then '----------------------------------
Title = c
PdfFile = ActiveWorkbook.FullName
i = InStrRev(PdfFile, ".")
If i > 1 Then PdfFile = Left(PdfFile, i - 1)
PdfFile = PdfFile & "_" & "Information" & ".pdf"
With ActiveWorkbook.Worksheets("Information")
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
On Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
Set OutlApp = CreateObject("Outlook.Application")
IsCreated = True
End If
OutlApp.Visible = True
On Error GoTo 0
With OutlApp.CreateItem(0)
.Subject = Title
.To = ""
.CC = ""
.Attachments.Add PdfFile
On Error Resume Next
.Display
sPath = "Any folder"
sPath = sPath & m.Subject
sPath = sPath & ".msg"
OutlApp.SaveAs sPath
Application.Visible = True
On Error GoTo 0
End With
'Kill PdfFile
'If IsCreated Then OutlApp.Quit
Set OutlApp = Nothing
End If '---------------------------------
Next c
End Sub
Sub-Oval2\u单击()
Dim被创建为布尔值
我想我会坚持多久
Dim PdfFile为字符串,标题为字符串
作为对象的对象
像细绳一样暗淡
像绳子一样模糊
变暗rng As范围,c As范围
设置rng=范围(“B10:B14”)
对于每个c In rng.单元格
如果c“那么”----------------------------------
标题=c
PdfFile=ActiveWorkbook.FullName
i=仪表电压(Pdfile,“.”)
如果i>1,则PdfFile=Left(PdfFile,i-1)
PdfFile=PdfFile&“&”信息“&”.pdf”
使用ActiveWorkbook.Worksheets(“信息”)
.ExportAsFixedFormat类型:=xlTypePDF,文件名:=PdfFile_
质量:=xlQualityStandard,IncludeDocProperties:=True_
IgnorePrintAreas:=False,OpenAfterPublish:=False
以
出错时继续下一步
Set extlapp=GetObject(,“Outlook.Application”)
如果有错误,那么
设置extlapp=CreateObject(“Outlook.Application”)
IsCreated=True
如果结束
extlapp.Visible=True
错误转到0
使用extlapp.CreateItem(0)
.主题=头衔
.To=“”
.CC=“”
.Attachments.Add PdfFile
出错时继续下一步
.展示
sPath=“任何文件夹”
sPath=sPath&m受试者
sPath=sPath&“.msg”
奥勒普·萨维亚斯·斯帕斯
Application.Visible=True
错误转到0
以
“杀了帕菲
'如果已创建,则取缔。退出
设置为“无”
结束---------------------------------
下一个c
端接头
VBA编码成功率随着使用选项Explicit
而增加,并将在错误恢复时的使用限制在少数适当的情况下
“代码>选项显式”考虑此强制
“工具|选项|编辑器”选项卡
'需要变量声明
子椭圆单击()
Dim被创建为布尔值
我想我会坚持多久
将pdfFile设置为字符串
将标题设置为字符串
作为对象的对象
像细绳一样暗淡
像绳子一样模糊
变暗rng As范围
调光范围
'下一步错误恢复时很少正确使用
出错时继续下一步
Set extlapp=GetObject(,“Outlook.Application”)
如果有错误,那么
设置extlapp=CreateObject(“Outlook.Application”)
IsCreated=True
如果结束
extlapp.Visible=True
'恢复正常错误处理
错误转到0
pdfFile=ActiveWorkbook.FullName
调试。打印pdfFile
i=仪表电压(Pdfile,“.”)
如果i>1,那么
Pdfile=左(Pdfile,i-1)
调试。打印pdfFile
如果结束
pdfFile=pdfFile&“&”信息“&”.pdf”
调试。打印pdfFile
使用ActiveWorkbook.Worksheets(“信息”)
.ExportAsFixedFormat类型:=xlTypePDF,文件名:=pdfFile_
质量:=xlQualityStandard,IncludeDocProperties:=True_
IgnorePrintAreas:=False,OpenAfterPublish:=False
以
设置rng=范围(“B10:B14”)
对于每个c In rng.单元格
如果c“那么”----------------------------------
标题=c
使用extlapp.CreateItem(0)
.主题=头衔
.To=“”
.CC=“”
.Attachments.Add pdfFile
错误时“不适当”下一步“恢复”已删除
.展示
sPath=“任何文件夹”
'sPath=“C:\Users\username\Test\”
调试。打印sPath
如果正确(sPath,1)“\”则
sPath=sPath&“\”
调试。打印sPath
如果结束
'由于错误处理不当,错误将被忽略
'会被选项显式捕获
'sPath=sPath&m.主题
sPath=sPath和主题
调试。打印sPath
sPath=sPath&“.msg”
调试。打印sPath
'由于错误处理不当,错误将被忽略
“奥兰普·萨维亚斯·斯帕斯
.SaveAs sPath
以
结束---------------------------------
下一个c
“杀了帕菲
'如果已创建,则取缔。退出
设置为“无”
调试。打印“完成”
端接头
尝试使用.SaveAs sPath
代替extlapp.SaveAs sPath
嗨,我试过了。不幸的是仍然没有运气。只是不保存任何注释在错误恢复下一步在之前。显示并观察发生的错误类型。按照建议使用.SaveAs sPath并定义有效路径,而不是sPath=“任何文件夹”请参阅