İpucu: Digər dillər Google-tərcümə olunur. Sizi ziyarət edə bilərsiniz English bu linkin versiyası.
Daxil ol
x
or
x
x
Qeydiyyatdan
x

or

Bir iş faylını PDF faylı olaraq saxlamaq və onu Outlook vasitəsilə əlavə olaraq göndərmək necədir?

Bəzi hallarda, Outlook vasitəsilə bir iş faylını bir PDF faylı kimi göndərmək tələb oluna bilər. Çoğunlukla, iş sayfasını bir PDF dosyası olaraq el ile kaydettirmeniz, sonra bu PDF dosyası ile Outlook'unuzda ek olaraq yeni bir e-poçt yaratmaq və nihayet göndərin. Əl ilə addım-addım əldə etmək çox vaxt alır. Bu yazıda, bir iş faylını bir PDF faylı kimi tez bir zamanda necə saxlaya biləcəyinizi və Excel-də Excel-də bir əlavə olaraq avtomatik olaraq göndərməyinizi göstərəcəyik.

Bir iş səhifəsini PDF fayl olaraq saxlayaraq VBA kodu ilə əlavə olaraq e-poçtla göndərin


Bir iş səhifəsini və ya bir neçə iş səhifəsini birbaşa olaraq ayrı PDF faylları kimi qeyd edin:

The Split İş Kitabı faydası Excel üçün Kutools asanlıqla bir iş və ya bir neçə iş səhifəsini birbaşa ayrı PDF faylları kimi saxlamağa kömək edə bilər. Ekrana baxın:

Excel üçün Kutools 300-dən çox lazımlı Excel alətləri daxildir. 60 gün ərzində heç bir məhdudiyyətsiz cəhd edin. İndi pulsuz sınaq yükləyin


arrow mavi sağ bubble Bir iş səhifəsini PDF fayl olaraq saxlayaraq VBA kodu ilə əlavə olaraq e-poçtla göndərin


Fəal iş səhifəsini bir PDF faylı olaraq avtomatik olaraq saxlamaq üçün aşağıdakı VBA kodunu işə sala bilərsiniz və sonra onu Outlook vasitəsilə əlavə olaraq göndərin. Xahiş edirik bunu edin.

1. PDF olaraq saxlayacaq və göndərəcəyiniz iş kitabçasını açın, sonra basın Dayandırmaq + F11 açmaq üçün eyni anda düymələri Proqramlar üçün Microsoft Visual Basic pəncərə.

2. İçində Proqramlar üçün Microsoft Visual Basic pəncərə basın Taxmaq > Modules. Sonra aşağıdakı VBA kodu kopyalayın və yapışdırın Kodu pəncərə. Ekran görüntüsünə baxın:

VBA kodu: Bir iş səhifəsini PDF fayl olaraq saxlayaraq əlavə olaraq elektron poçtla göndərin

Sub Saveaspdfandsend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range

Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)

If xFileDlg.Show = True Then
   xFolder = xFileDlg.SelectedItems(1)
Else
   MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
   Exit Sub
End If
xFolder = xFolder + "\" + xSht.Name + ".pdf"

'Check if file already exist
If Len(Dir(xFolder)) > 0 Then
    xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
                      vbYesNo + vbQuestion, "File Exists")
    On Error Resume Next
    If xYesorNo = vbYes Then
        Kill xFolder
    Else
        MsgBox "if you don't overwrite the existing PDF, I can't continue." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
        Exit Sub
    End If
    If Err.Number <> 0 Then
        MsgBox "Unable to delete existing file.  Please make sure the file is not open or write protected." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
        Exit Sub
    End If
End If

Set xUsedRng = xSht.UsedRange
If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
    'Save as PDF file 
    xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard
    
    'Create Outlook email 
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmailObj = xOutlookObj.CreateItem(0)
    With xEmailObj
        .Display
        .To = ""
        .CC = ""
        .Subject = xSht.Name + ".pdf"
        .Attachments.Add xFolder
        If DisplayEmail = False Then
            '.Send
        End If
    End With
Else
  MsgBox "The active worksheet cannot be blank"
  Exit Sub
End If
End Sub

3. Basın F5 kodunu çalıştırmak üçün düyməsini basın. İçində İnsanlar informasiya qutusunda bu PDF faylını saxlamaq üçün bir qovluq seçin və sonra basın OK düyməsini basın.

Qeydlər:

1. İndi aktiv iş PDF faylı olaraq saxlanılır. Və PDF faylı iş səhifəsi adı ilə adlandırılır.

2. Aktiv iş səhifəsi boşsa, tıklandıktan sonra göstərilən ekranın altındakı bir informasiya qutusu olacaq OK düyməsini basın.

4. İndi yeni bir Outlook e-poçtu yaradılıb və PDF faylını Əlavə edilmiş faylda əlavə olaraq verilmişdir. Ekran görüntüsünə baxın:

5. Xahiş edirik bu e-poçtu tərtib edin və göndərin.

Qeyd: Bu kod yalnız Outlook proqramı olaraq istifadə etdiyiniz zaman mövcuddur.


arrow mavi sağ bubbleƏlaqəli məqalələr:



Təklif olunan Məhsuldarlıq Vasitələri

Office Tab

qızıl star1 Chrome, Firefox və yeni Internet Explorer kimi Excel və digər Office proqramlarına lazımlı sekmeleri gətirin.

Excel üçün Kutools

qızıl star1 Amazing! 5 dəqiqədə məhsuldarlığınızı artırın. Heç bir xüsusi bacarıqa ehtiyac yoxdur, hər gün iki saat saxlaya bilərsiniz!

qızıl star1 300 Excel üçün yeni funksiyalar, Excel çox asan və güclü olun:

  • Veriyi ləğv etmədən Cell / Satır / Sütunları birləşdirin.
  • Bir neçə Çarşaf və İş Kitabını birləşdirin və birləşdirin.
  • Çaprazları müqayisə edin, birdən çox aralığa kopyalayın, mətni tarixə, vahidə və valyuta çevrilməsinə çevirin.
  • Rənglər, Paging Subtotals, Advanced Sort və Super Filter tərəfindən sayılan,
  • Daha çox seçin / Insert / Sil / Mətn / Biçim / Bağlantı / Yorum / Çalışma kitabları / Çalışma Qurğuları Tools ...

Excel üçün Kutools-un ekranı

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    james · 7 months ago
    Hi, how can i save & send the pdf wit the workbook name with the current VBA code? what do i use instead of xSht.Name
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      Hi James,
      Do you want to send the active worksheet as pdf and name it as the workbook name?
  • To post as a guest, your comment is unpublished.
    Tom H · 10 months ago
    How would I edit the VBA script above so that the file name is saved as a specific cell selected within the current sheet, for example cell A1?
  • To post as a guest, your comment is unpublished.
    Armin · 11 months ago
    How can I add for example sheet 2 from the workbook as an pdf?
    • To post as a guest, your comment is unpublished.
      crystal · 9 months ago
      Hi Armin,
      You need to open the Sheet 2 in your workbook firstly and then run the VBA code with above steps to get it down.
  • To post as a guest, your comment is unpublished.
    Michael Charry · 1 years ago
    How would I edit the VBA script above so that it adds a date and time stamp to the file name that way it doesn't keep overwriting what is already saved?
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Michael,
      Please run the below VBA code to solve the problem.

      Sub Saveaspdfandsend()
      Dim xSht As Worksheet
      Dim xFileDlg As FileDialog
      Dim xFolder As String
      Dim xYesorNo As Integer
      Dim xOutlookObj As Object
      Dim xEmailObj As Object
      Dim xUsedRng As Range
      Dim xStr As String

      Set xSht = ActiveSheet
      Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)

      If xFileDlg.Show = True Then
      xFolder = xFileDlg.SelectedItems(1)
      Else
      MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
      Exit Sub
      End If
      xStr = Format(Now(), "yyyy-mm-dd-hh-mm-ss")
      xFolder = xFolder + "\" + xSht.Name + "-" + xStr + ".pdf"

      'Check if file already exist
      If Len(Dir(xFolder)) > 0 Then
      xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
      vbYesNo + vbQuestion, "File Exists")
      On Error Resume Next
      If xYesorNo = vbYes Then
      Kill xFolder
      Else
      MsgBox "if you don't overwrite the existing PDF, I can't continue." _
      & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
      Exit Sub
      End If
      If Err.Number <> 0 Then
      MsgBox "Unable to delete existing file. Please make sure the file is not open or write protected." _
      & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
      Exit Sub
      End If
      End If

      Set xUsedRng = xSht.UsedRange
      If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
      'Save as PDF file
      xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard

      'Create Outlook email
      Set xOutlookObj = CreateObject("Outlook.Application")
      Set xEmailObj = xOutlookObj.CreateItem(0)
      With xEmailObj
      .Display
      .To = ""
      .CC = ""
      .Subject = xSht.Name + "-" + xStr + ".pdf"
      .Attachments.Add xFolder
      If DisplayEmail = False Then
      '.Send
      End If
      End With
      Else
      MsgBox "The active worksheet cannot be blank"
      Exit Sub
      End If
      End Sub
  • To post as a guest, your comment is unpublished.
    Darren · 1 years ago
    I have tried pasting this into a new module and i get Compile error: Sub or Function not defined. Please help.