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 = "y_dong119@sina.com"
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 = "y_dong119@sina.com"
' 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

 

posted @ 2017-07-01 21:59  屎壳螂  阅读(735)  评论(0编辑  收藏  举报