一个由多个文档(Word 2003或2007)使用中央页眉/页脚
题
内部字(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