Aby zapisać wybrany zakres w Excelu (powiedz paragon) jako PDF w Excelu za pomocą VBA, użyj poniższej składni.
Kod generyczny
Sub ZapiszZakresAsPDF() Zasięg.ExportAsFixedFormat Type:=xlTypePDF, Nazwa pliku:= _ "C:\Użytkownicy\nazwa_pliku”, Jakość:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub
Powyższy kod jest ogólnym kodem do zapisywania stałego zakresu jako dokumentu PDF. Gdy Twoje makro rekordu podczas eksportowania programu Excel do pliku PDF, pojawi się podobny kod.
Zasięg:Może to być zakres stały, zakres dynamiczny lub wybór. Musisz to zdefiniować.
Nazwa pliku: To jest w pełni kwalifikowana nazwa pliku pdf. Zdefiniuj go jako ciąg.
Resztę zmiennych można pozostawić bez zmian. Wyjaśniłem je za przykładem.
Przykład: Wydrukuj paragon Excela jako plik PDF za pomocą VBA
Załóżmy, że musisz regularnie drukować i wysyłać potwierdzenia w programie Excel. W takim przypadku chciałbyś, aby to było zautomatyzowane. Nie chciałbyś w kółko robić eksportu Excela do formatu PDF. Jeśli możesz po prostu użyć do tego przycisku, byłoby to pomocne, prawda?
Tutaj zaprojektowałem ten format paragonu. Chcę go wydrukować/zapisać/wyeksportować jako plik PDF za pomocą przycisku „Utwórz PDF”.
Ten paragon obejmuje zakres „A2:L21”. Ustawiłem już obszar wydruku.
Aby zaoszczędzić na tym zakresie programu Excel w formacie PDF, użyjemy wyżej wspomnianego ogólnego kodu VBA eksportowania arkusza programu Excel do formatu PDF. Dostosujemy kod zgodnie z naszymi wymaganiami.
Sub PrintSelectionToPDF() Dim fakturaRng As Zakres Dim pdfile As String 'Ustawienie zakresu do wydrukowania Ustaw fakturęRng = Zakres("A1:L21") 'ustawienie nazwy pliku ze znacznikiem czasu. pdfile = "invoice" & "_" & Format(Now(), "rrrrmmdd_hhmmss") & ".pdf" 'ustawienie pełnej nazwy kwalifikowanej. Wynikowy plik PDF zostanie zapisany tam, gdzie istnieje plik główny. pdfile = ThisWorkbook.Path i strfile fakturaRng.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:= pdfile, _ Quality:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfter EndPublish Sub:=False
Korzystanie z kodu:
Skopiuj powyższy kod do pliku potwierdzenia, otwierając edytor VBA (użyj Alt + F11). Dostosuj zakres i ścieżkę pliku (jeśli chcesz) w kodzie, który chcesz wydrukować. Możesz pobrać plik roboczy poniżej.
Zapisz zakres Excela jako PDF za pomocą VBA
Wyjaśnienie:
Dim fakturaRng As Range Dim pdfile As String
Kod jest prosty. Najpierw stworzyliśmy dwie zmienne. „InvoiceRng as Range” dla zakresu/arkusza, który chcemy zapisać jako pdf. strFile dla pełnej nazwy pliku wynikowego pliku PDF.
Ustaw numer faktury = Zakres("A1:L21")
Ponieważ nasz zakres drukowania jest stały, ustawiamy zakres faktur jako Zakres("A1:L21").
pdfile = "faktura" & "_" & Format(Now(), "rrrrmmdd_hhmmss") & ".pdf" pdfile = ThisWorkbook.Path & strfile
W powyższych dwóch wierszach najpierw nazywamy plik znacznikiem czasu, a następnie dodajemy do ścieżki głównego pliku. W rezultacie pdfile zawiera w pełni kwalifikowaną nazwę wynikowego pliku pdf.
fakturaRng.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:= pdfile, _ Quality:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=True, _ OpenAfterPublish:=False
Na koniec używamy metody ExpoortAsFixedFormat klasy Range, aby wydrukować zdefiniowany zakres Excela jako PDF. Definiujemy typ jako xlTypePDF. Innym wyborem jest xlTypeXPS, który zapisze wybrany zakres jako plik XPS.
Ustawiamy Filename jako pdfile, który zawiera ciąg w pełni kwalifikowanej nazwy pliku pdf. Możesz tutaj napisać zakodowany tekst lub dostosować go do swoich potrzeb.
Następnie ustawiamy jakość pliku pdfile na xlQualityStandard. Mamy inny wybór jako xlQualityMinimum.
Następnie ustawiamy IncludeDocProperties na True. Oznacza to, że wynikowy plik PDF będzie miał właściwości dokumentu.
Następnie ustawiamy IgnorePrintAreas jako True. Oznacza to, że zignoruje każdy już ustawiony obszar drukowania.
Na koniec ustawiliśmy OpenAfterPublish jako False. Oznacza to, że utworzony plik nie otworzy się automatycznie. Ustawiam to jako false, ponieważ tworzę setki plików za pomocą pętli i nie chcę, aby się otwierały. Jeśli chcesz otworzyć plik po utworzeniu za pomocą programu Excel, ustaw go na True.
Wykorzystanie drukowania wybranego zakresu w formacie pdf
Jednym z podstawowych zastosowań jest wydrukowanie wybranego zakresu za pomocą jednego przycisku. Ale najlepszym zastosowaniem jest użycie go w pętli, w której trzeba utworzyć wiele paragonów dla różnych klientów. Utwórz sub do wypełniania danych, a następnie użyj tego kodu, aby wydrukować wybrany zakres w pętli.
Więc tak chłopaki, w ten sposób można zapisać wybrany zakres jako pdf. Mam nadzieję, że ci się przydało. Jeśli nadal masz jakiekolwiek wątpliwości lub pytania dotyczące drukowania w programie Excel za pomocą VBA, zapytaj w sekcji komentarzy poniżej.
Wydrukuj wiele zaznaczeń na jednym arkuszu za pomocą VBA w programie Microsoft Excel | Wybierz wiele zakresów i wydrukuj każdy zakres w innym arkuszu za pomocą VBA.
Wydrukuj wszystkie skoroszyty w folderze za pomocą VBA w programie Microsoft Excel | Użyj tego kodu VBA, aby wydrukować i zapisać każdy skoroszyt programu Excel w folderze za pomocą.
Popularne artykuły:
Podziel arkusz Excela na wiele plików na podstawie kolumny za pomocą VBA | Ten kod VBA dzieli arkusz Excela na podstawie unikalnych wartości w określonej kolumnie. Pobierz plik roboczy.
Wyłącz komunikaty ostrzegawcze za pomocą VBA w programie Microsoft Excel 2016 | Aby wyłączyć komunikaty ostrzegawcze, które przerywają działający kod VBA, używamy klasy Application.
Dodaj i zapisz nowy skoroszyt za pomocą VBA w programie Microsoft Excel 2016 | Do dodawania i zapisywania skoroszytów za pomocą VBA używamy klasy Workbooks. Workbooks.Add łatwo dodaje nowy skoroszyt, jednak…