Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将创建的电子邮件另存为.msg_Vba_Outlook - Fatal编程技术网

Vba 将创建的电子邮件另存为.msg

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

我每天都在使用代码。它将标签转换为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 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=“任何文件夹”请参阅