Vba 多个文档使用的一个中央页眉/页脚(Word 2003或2007)

Vba 多个文档使用的一个中央页眉/页脚(Word 2003或2007),vba,header,ms-word,footer,Vba,Header,Ms Word,Footer,在Word内部(2003或2007),是否有一种方法可以让多个文档使用一个页眉/页脚 我希望能够在一个位置更改页眉/页脚,并使其影响多个文档 i、 我有50份文件,它们都有相同的页眉/页脚。是否有一种方法可以将50个文档链接(OLE?)到主文档,而只需更改主文档,而无需打开所有50个文档进行更改 如果没有内置方式,是否有人使用VBA执行此操作?AFAIK更改文档标题(简单地说)必须通过打开文档来完成。也就是说你有几个选择。首先,如果文档以office XML格式保存,则可以使用MSXML库打开文

在Word内部(2003或2007),是否有一种方法可以让多个文档使用一个页眉/页脚

我希望能够在一个位置更改页眉/页脚,并使其影响多个文档

i、 我有50份文件,它们都有相同的页眉/页脚。是否有一种方法可以将50个文档链接(OLE?)到主文档,而只需更改主文档,而无需打开所有50个文档进行更改


如果没有内置方式,是否有人使用VBA执行此操作?

AFAIK更改文档标题(简单地说)必须通过打开文档来完成。也就是说你有几个选择。首先,如果文档以office XML格式保存,则可以使用MSXML库打开文件并更改标题中的数据。(或者改变本质上是文本文件的几十种其他方法中的任何一种)如果文件仍然是二进制格式,那么实际上只有两种选择之一。第一种方法是通过vba打开文件,并通过文档对象模型更改标题。第二种方法是找出二进制格式(有文档记录),并使用VB6/VBA本机二进制IO(非常重要)对其进行更改

除非我认为我可以获得更多的时间,否则我将失去编写代码来直接修改文档的能力,我可能只是循环遍历文件夹中的所有文件,打开并修改它们。至于将标题存储在某处。。。您可以将标题数据放在文本文件中并将其拉入。或者把文档模板放在某个地方

下面是一个非常简单的例子:

Public Sub Example()
    Dim asFiles() As String
    Dim lFile As Long
    Dim docCrnt As Word.Document
    asFiles = GetFiles("C:\Test\", "*.doc")
    For lFile = 0& To UBound(asFiles)
        Set docCrnt = Word.Documents.Open(asFiles(lFile))
        docCrnt.Windows(1).View.SeekView = wdSeekCurrentPageHeader
        Selection.Text = "I am the header."
        docCrnt.Close True
    Next
End Sub

Public Function GetFiles( _
    ByVal folderPath As String, _
    Optional ByVal pattern As String = vbNullString _
    ) As String()

    Dim sFile As String
    Dim sFolder As String
    Dim asRtnVal() As String
    Dim lIndx As Long

    If Right$(folderPath, 1&) = "\" Then
        sFolder = folderPath
    Else
        sFolder = folderPath & "\"
    End If
    sFile = Dir(sFolder & pattern)
    Do While LenB(sFile)
        ReDim Preserve asRtnVal(lIndx) As String
        asRtnVal(lIndx) = sFolder & sFile
        lIndx = lIndx + 1&
        sFile = Dir
    Loop
    If lIndx = 0& Then
        ReDim asRtnVal(-1& To -1&) As String
    End If
    GetFiles = asRtnVal
    Erase asRtnVal
End Function

我不确定这在实践中会如何工作,但您可以将其他文件作为链接插入Word文档中

首先使用页眉/页脚内容创建文档,并将内容放在文档正文中。保存它

然后转到50个文档中的一个,进入页眉/页脚。转到插入|文件。找到第一个文件,然后单击“插入文件”对话框中“打开”按钮旁边的小下拉箭头。从下拉列表中,选择“插入为链接”。内容现在应该显示在文档中。如果你点击内容,通常它会有一个灰色的背景,表明它实际上是一个单词字段


现在,当您更改第一个文档时,您可以打开第二个文档,更新字段(单击其中的任意位置并点击F9),新内容将被拉入。您还可以非常轻松地以编程方式更新字段,或者在“工具|选项|打印”下,有一个框可以在每次打印文档时自动更新字段。

非常感谢。这会奏效的。另一个注意事项是,在Word 2007中,插入文件位置已更改。它现在位于“插入”选项卡上的“文本”组中,称为“对象”。单击此按钮将打开“对象”对话框,在其中选择“从文件创建”选项卡并输入要链接的.docx文件。它工作得很好。我看到的下一个问题是,我想与其他三个人共享这些文档,链接有完整的路径,我希望它是一个相对路径。我怀疑你能做些什么。Word喜欢使用完整UNC存储路径。