vba -------------vba 导出word到pdf 发邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba -------------vba 导出word到pdf 发邮件相关的知识,希望对你有一定的参考价值。


Public Sub SendMail()
Dim objAccount As Object
Dim objApp As Object ‘Outlook.Application

‘ If Not CheckData Then
‘ Exit Sub
‘ End If

‘ If MsgBox(shtMessage.Range("A1").Value, vbYesNo + vbExclamation) <> vbYes Then
‘ Exit Sub
‘ End If

Set objApp = GetObject("", "Outlook.Application")

If objApp.Session.accounts.Count > 1 Then
frmAccounts.Show vbModal
If Val(frmAccounts.lstAccounts.Tag) > 0 Then
Set objAccount = objApp.Session.accounts.Item(Val(frmAccounts.lstAccounts.Tag))
Else
Exit Sub
End If
Else
Set objAccount = objApp.Session.accounts.Item(1)
End If

Dim strPath As String
Dim objWB As Workbook

‘strPath = Environ$("TEMP") & "\test.xlsm"
‘ ThisWorkbook.SaveCopyAs strPath
Dim endRow
Dim rowindex As Integer



endRow = Sheet24.Range("a65536").End(xlUp).Row


MsgBox endRow


For rowindex = 1 To endRow

‘判断项目名称是否为空
If Sheet24.Cells(rowindex, 1) = "" Then
Exit For

End If

Dim objMailItem As Object ‘MailItem

Set objMailItem = objApp.CreateItem(0)

objMailItem.To = "[email protected]"
objMailItem.Cc = ""
objMailItem.Subject = "hello world"
objMailItem.Body = "this is a test mail"

objMailItem.Attachments.Add ExcelToWordToPdf(rowindex)

objMailItem.Display
‘objMailItem.Send


Next




‘ Dim objMailItem As Object ‘MailItem

‘ Set objMailItem = objApp.CreateItem(0)

‘ objMailItem.to = "[email protected]"
‘ objMailItem.Cc = ""
‘ objMailItem.Subject = "hello world"
‘ objMailItem.Body = "this is a test mail"
‘ ‘objMailItem.Attachments.Add strPath

‘ objMailItem.Display
‘ ‘objMailItem.Send

‘ MsgBox "Success!", vbInformation

End Sub

 


Sub TestFunc() ‘定义一个string类型的参数s

Dim s
s = "abc "
MsgBox Len(s)

MsgBox Application.ActiveWorkbook.path

‘ MsgBox ExcelToWordToPdf("我的文件") ‘返回一个字符串"返回值"
End Sub

 

 


Function ExcelToWordToPdf(rowindex As Integer)

Dim wdDoc, newPdfPath, currentPath, filename

currentPath = Application.ActiveWorkbook.path & "\"


newPdfPath = currentPath & "files\"

filename = Sheet24.Cells(rowindex, 1) & ".pdf"

Set wdDoc = CreateObject(currentPath & "template.docx") ‘打开word


wdDoc.Range.Find.Execute FindText:="{1}", ReplaceWith:="标题---test-replage", Replace:=1 ‘replace为1 替换一次,2替换所有
wdDoc.Range.Find.Execute FindText:="{2}", ReplaceWith:="test----2"


If Dir(newPdfPath) = "" Then

MkDir (newPdfPath)
End If


wdDoc.ExportAsFixedFormat newPdfPath & filename, 17 ‘ wdExportFormatPDF 是17


wdDoc.Close

Set wdDoc = Nothing
ExcelToWordToPdf = newPdfPath & filename


End Function

 

以上是关于vba -------------vba 导出word到pdf 发邮件的主要内容,如果未能解决你的问题,请参考以下文章

将 PPT 保存为 PNG,无需“导出”VBA

访问 VBA 将 CSV 文件导出为 UTF-8

excel通过VBA导出XML文件时候如何设定编码格式

通过vba将特定的excel范围导出为jpeg

从 ms 访问应用程序导出整个 vba 代码 [重复]

vbscript 批量导出VBA文件