我一直在修改我在youtube上找到的宏,以将页面(邮件)分离为新的pdf文件。我添加了一些代码以将公司名称添加到文件名中。但是,当我运行代码时,它说“这不是有效的文件名”。问题是当我将这些段落存储到公司(i)中时。我进行debug.print,然后看到类似“此处的文字”的内容。我该如何解决?
Sub test()
Dim i, j, k, l As Long 'Iteradores
Dim var As Variant 'Parrafo
Dim org As Variant 'Condición 1
Dim org2 As Variant 'Condición 2
Dim company(100) As Variant 'Array
Dim num_paginas As Integer
Dim num_doc As Integer
Dim pag_inicial As Integer
Dim pagina_final As Integer
Dim URL As String
Dim nombres As String
j = 1
org = ActiveDocument.Paragraphs(2).Range.Text
org2 = ActiveDocument.Paragraphs(20).Range.Text
For k = 1 To ActiveDocument.Paragraphs.Count
var = ActiveDocument.Paragraphs(k).Range.Text
If var = org Or var = org2 Then
company(j) = Trim((ActiveDocument.Paragraphs(k + 4).Range.Text))
j = j + 1
End If
Next k
For l = 1 To 100
Debug.Print VarType(company(l))
Next l
num_paginas = InputBox("Ingrese el numero de paginas por documento")
num_doc = InputBox("¿Cuantos documentos desea generar?")
URL = InputBox("¿Donde desea crear los documentos?")
nombres = InputBox("¿Que nombre tendran los Documentos?")
pag_inicial = 1
pagina_final = num_paginas
MsgBox (URL & "\" & "0" & i & " - " & nombres & company(1) & ".pdf") 'Test
For i = 1 To num_doc
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
URL & "\" & "0" & i & " - " & nombres & company(i) & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=pag_inicial, To:=pagina_final, Item:= _
wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
ChangeFileOpenDirectory URL
pag_inicial = pagina_final + 1
pagina_final = pagina_final + num_paginas
Next i
End Sub
大概您正在尝试从邮件合并中拆分输出。在这种情况下,最好在执行合并时进行拆分,有关该拆分的信息,请参见Mailmerge提示和技巧线程中的将Mailmerge输出发送到单个文件:https://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html
有关合并后的拆分,请参见同一页面上的将合并的输出拆分成单独的文档。