内部字(2003或2007),是有办法具有所使用的一个页眉/页脚多个文件?

我希望能够改变的页眉/页脚在一个点,并有它影响多个文档。

即。我有50个文件,它们都具有相同的页眉/页脚。相反,打开所有50个文档进行更改的,是有办法(OLE?)50个文件链接到主文档,只需要改变主文档?

如果没有一个内置的方式,有没有人做过这种使用VBA?

有帮助吗?

解决方案

我不知道这将如何在实践中工作,但你可以插入其他的文件到Word文档作为链接。

首先创建具有页眉/页脚的内容文件,与所述文档的正文的内容。保存它。

然后转到您的50个文件之一,进入页眉/页脚。转到插入|文件。找到的第一个文件,然后单击插入文件对话框旁边OPEN按钮的小下拉箭头。从下拉列表中,选择作为链接插入。内容现在应该在文档中显示出来。如果您在内容点击,通常就会有一个灰色的背景,以表明它确实是一个Word域。

现在,当您更改的头文件,你可以打开第二个文档,更新字段(点击它的任何地方,按下F9键)和新内容将被拉动。您还可以更新域编程很容易的,或下TOOLS |选项| PRINT,有一个盒自动更新字段每次打印文档的时间。

其他提示

AFAIK以改变文件报头(简单地)必须由具有打开文档来完成。这就是说,你有几种选择。首先,如果文档保存在办公室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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top