在标题(Microsoft Word)中使用文档的文件名的一部分
弗拉基米尔(Vladimir)知道他可以将文档的文件名放在页面的页眉中。不过,他希望仅在文件头中显示文件名的最后五个字符(不包括文件扩展名)。他正在寻找完成任务的最佳方法。
唯一的方法是使用宏。 Word中没有内置功能可以完成任务。宏需要确定文件名,获取所需的字符,然后将其填充到标题中。但是,看起来似乎很简单的事情却有潜在的并发症。例如,如果尚未保存文档,因此还没有文件名怎么办?如果文档已保存但文件名少于五个字符怎么办?
如果标头中已经有内容,宏应该怎么做?
如果用户在不显示标题的视图中查看文档,该怎么办?
为了处理此类问题,宏需要做出一些假设。
在此示例中,我们假设宏应仅用文件名的所需部分替换现有的任何标头。此外,宏可以将查看模式切换到“打印版式”视图,因此标题易于使用。结果如下:
Sub PartFilenameInHeader() Dim sName As String Dim J As Long sName = ActiveDocument.Name J = InStrRev(sName, ".") If J > 0 Then sName = Left(sName, J - 1) If Len(sName) > 5 Then sName = Right(sName, 5) End If If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Selection.WholeStory Selection.Delete Selection.TypeText Text:=sName ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument Else MsgBox "Document has no filename extension." End If End Sub
宏首先检查以确保文档具有真实的文件名(来自ActiveDocument对象的.Name属性)。如果是这样,那么它将从文件名中提取五个(或更少)字符。它检查以确保没有打开多个窗格,并且该文档处于“打印版式”视图中。然后,它选择标题中当前存在的任何内容,并将其替换为文件名中所需的字符。
请理解,在保存文档后应再次运行宏,如果您使用其他文件名保存文档,则应再次运行宏。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13316)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。