2015-10-08 6 views
1

Моя цель состоит в том, чтобы иметь возможность щелкнуть по кнопке и моей листинге Excel в PDF-формате моей электронной таблицы и отправить ее по электронной почте на адрес электронной почты, который находится в одной из ячеек в лист. Во-первых, у меня есть код, который может превратить диапазон ячеек в файл PDF и позволяет мне сохранить его:Отправка листа Excel непосредственно в формате PDF

Option Explicit 
Sub savePDF() 
Dim wSheet As Worksheet 
Dim vFile As Variant 
Dim sFile As String 

Set wSheet = ActiveSheet 
sFile = Replace(Replace(Range("D11"), " ", ""), ".", "_") _ 
     & "_" _ 
     & Range("H11") _ 
     & ".pdf" 
sFile = ThisWorkbook.Path & "\" & sFile 

With Excel.Application.FileDialog(msoFileDialogSaveAs) 

Dim i As Integer 
For i = 1 To .Filters.Count 
    If InStr(.Filters(i).Extensions, "pdf") <> 0 Then Exit For 
Next i 

.FilterIndex = i 
.InitialFileName = sFile 

.Show 
If .SelectedItems.Count > 0 Then vFile = .SelectedItems.Item(.SelectedItems.Count) 

End With 

If vFile <> "False" Then 
wSheet.Range("A1:BF47").ExportAsFixedFormat _ 
    Type:=xlTypePDF, _ 
    Filename:=vFile, _ 
    Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, _ 
    IgnorePrintAreas:=False, _ 
    OpenAfterPublish:=False 

End If 
End Sub 

Кто-нибудь может манипулировать этот код (прилагается к кнопке), поэтому он будет по электронной почте адрес электронной почты , который находится в определенной ячейке, когда кнопка нажата и в качестве добавленного бонуса, тоже будет работать с электронной почтой из ячейки в электронной таблице?

+4

Возможно, см. [Это] (http://stackoverflow.com/questions/32851623/custom-subject-line-for-outlook/32855082#32855082)? – findwindow

+0

Это своего рода область, которую я хочу, но это отличается тем, что мой лист excel должен прикрепить PDF-файл Excel к электронной почте, и я не уверен, как это сделать. @findwindow –

+1

@findwindow: Я согласен. Это решение должно работать отлично. Единственное, чего не хватает в этом решении, - это добавить файл PDF в качестве вложения: '.Attachments.Add 'C: \ Мои документы \" или vFile в данном решении' в 'With' для' MailItem'. – Ralph

ответ

0

У меня есть решение, которое находится ниже. После того, как я могу установить область печати, перейдя на страницу выплаты, а затем установить область печати, я успешно удалось отправить лист первенствовать как PDF файл:

Sub savePDFandEmail() 

Dim strPath As String, strFName As String 
Dim OutApp As Object, OutMail As Object 

strPath = Environ$("temp") & "\" trailing "\" 

strFName = ActiveWorkbook.Name 
strFName = Left(strFName, InStrRev(strFName, ".") - 1) & "_" & ActiveSheet.Name & ".pdf" 

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    strPath & strFName, Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 

Set OutApp = CreateObject("Outlook.Application") 
Set OutMail = OutApp.CreateItem(0) 

On Error Resume Next 
With OutMail 
    .to = Range("CB4") 
    .CC = Range("CB6") 
    .BCC = "" 
    .Subject = Range("CB8") 
    .Body = Range("BW11") & vbCr 
    .Attachments.Add strPath & strFName 
    '.Display 'Uncomment Display and comment .send to bring up an email window before sending 
    .Send  'Keep this the same if you want to send the email address out on click of the button 
End With 

Kill strPath & strFName 
On Error GoTo 0 

Set OutMail = Nothing 
Set OutApp = Nothing 
End Sub 

мне нужно положить немного инструмент электронной почтой в мой лист тоже который выглядит следующим образом:

Email Tool Inside of Spreadsheet

при нажатии на кнопку теперь будет отправить электронное письмо с файлом PDF прилагается.

Смежные вопросы