我需要在Word 2010中创建一个宏,它将添加一个带有文件名的页脚,而不包含扩展名。
当您使用docvariable字段时,我找到了一个显示没有扩展名的文件名的代码:
Sub autofilenamefooter()
Dim fname As String
fname = ActiveDocument.Name
fname = Left(fname, InStr(fname, ".") - 1)
With ActiveDocument
.Variables("fname").Value = fname
.PrintPreview
.ClosePrintPreview
End With
End Sub
我如何使用它来创建一个宏:
提前致谢!
您拥有的代码不需要进一步的实现代码。只需在页脚中放置一个参考字段,即可以显示文件名。从“插入”选项卡中选择“快速部件”>“字段”,然后插入DocVariable字段。将字段命名为“Fname”(或与代码中的名称匹配的任何其他名称)。然后在您希望文件名所在的文档处于活动状态时运行以下代码。
Sub SetDocVariable()
' 28 Dec 2017
Dim Sp() As String
Dim Test As String
Dim VarName As String
Dim VarValue As String
VarName = "Fname"
With ActiveDocument
Sp = Split(.Name, ".")
ReDim Preserve Sp(UBound(Sp) - 1)
VarValue = Join(Sp, ".")
' VarValue = "" ' Use this line to show nothing
On Error Resume Next
Test = .Variables(VarName).Value
If Err Then
.Variables.Add VarName
Err.Clear
End If
If .Variables(VarName).Value <> VarValue Then .Variables(VarName).Value = VarValue
End With
End Sub
此代码将文件名写入文档变量,如果该变量不存在,则将该变量添加到文档中。当变量为空时,您插入的字段将不显示任何内容。如果变量不存在,它将显示错误。将文档变量设置为“”以没有错误,也没有文件名。
或许更好的方法是使用其中一个内置文档属性(或自定义文档属性,如果没有任何内置文件属性可以转移到此目的)代替文档变量,以及相应的参考字段(快速部件>文档属性)。您必须在属性对话框中键入文件名,但根本不需要任何代码。
顺便说一句,'FileName'引用字段(Quick Parts> Fields> FileName)以您想要的格式显示文件名,但不能将其设为空白。