วนทุกหน้าและรับบรรทัดแรกพร้อมข้อความ

ฉันต้องการใช้ VBA เพื่อวนซ้ำหน้าเอกสาร MS Word ของฉันและพิมพ์แต่ละหน้าเป็น PDF แยกกัน ชื่อไฟล์ PDF แต่ละไฟล์จะต้องขึ้นบรรทัดแรกพร้อมข้อความในแต่ละหน้า ฉันกำลังลองบางอย่างตาม:

Sub printSepPdf()

        Dim pages As Page
        Dim p As Paragraph
        
    
    
        For Each pages In ActiveDocument
            ActiveDocument.ExportAsFixedFormat OutputFileName:=p.Range.Sentences(1) & ".pdf", ExportFormat:=wdExportFormatPDF, _
            OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
            wdExportFromTo, From:=1, To:=1, Item:=wdExportDocumentContent, _
            IncludeDocProps:=False, KeepIRM:=False, CreateBookmarks:= _
            wdExportCreateHeadingBookmarks, DocStructureTags:=True, _
            BitmapMissingFonts:=False, UseISO19005_1:=False
    
    Next pages
    
     
    End Sub

person Gordobobo    schedule 02.08.2020    source แหล่งที่มา
comment
หากนี่คือเอกสารที่สร้างขึ้นโดยจดหมายเวียน โปรดดูที่ แยกผลลัพธ์ที่ผสานออกเป็นเอกสารที่แยกจากกัน หรือถ้าดีกว่านั้น ส่งเอาต์พุตทางไปรษณีย์ไปยังไฟล์แต่ละไฟล์ ใน คำแนะนำในการจดหมายเวียนและ เคล็ดลับที่ msofficeforums.com/mail-merge /21803-mailmerge-tips-tricks.html   -  person macropod    schedule 03.08.2020


คำตอบ (1)


รหัสของคุณมีปัญหาเล็กน้อย ... ActiveDocument ไม่มีการอ้างอิงถึงเพจโดยตรง ... คุณไม่ได้ตั้งค่าย่อหน้า p ที่ใดเลย ... หมายเลขหน้าเป็นฮาร์ดโค้ดในการส่งออก

ลองทำตามขั้นตอนต่อไปนี้ โดยวนซ้ำแต่ละหน้าของเอกสาร (สังเกตว่าเอกสารจะต้องอยู่ในมุมมอง PrintLayout) จากนั้นรับประโยคแรก ลดขนาดลง 1 เพื่อลบอักขระส่วนท้ายของย่อหน้า และสร้างชื่อไฟล์ PDF จากนั้นจะบันทึกทั้งหน้าเป็น PDF

Sub printSepPdf()

    Dim PageCounter As Long
    Dim PageFirstSentence As Range
    Dim PDFName As String
    
    For PageCounter = 1 To ActiveDocument.Windows(1).Panes(1).pages.Count
        Set PageFirstSentence = ActiveDocument.Range.GoTo(wdGoToPage, wdGoToAbsolute, PageCounter)
        PageFirstSentence.Expand (wdSentence)
        PageFirstSentence.SetRange PageFirstSentence.Start, PageFirstSentence.End - 1
        PDFName = PageFirstSentence & ".pdf"
        
        ActiveDocument.ExportAsFixedFormat OutputFileName:=PDFName, _
        ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, _
        OptimizeFor:=wdExportOptimizeForPrint, _
        Range:=wdExportFromTo, _
        From:=PageCounter, _
        To:=PageCounter, _
        Item:=wdExportDocumentContent, _
        IncludeDocProps:=False, _
        KeepIRM:=False, _
        CreateBookmarks:= _
        wdExportCreateHeadingBookmarks, _
        DocStructureTags:=True, _
        BitmapMissingFonts:=False, _
        UseISO19005_1:=False
        
    Next

End Sub
person TechnoDabbler    schedule 03.08.2020