在 MS Word 中,您可以插入字段代码来显示文档文件名,并可以选择包含或不包含完整路径。
我想要的是仅插入不包括文件名的文件夹路径。
宏不是一种选项。
这能做到吗?
是否有备用字段代码?
FILENAME 字段代码上是否存在一些神奇的未记录的开关?(众所周知微软以前就这么做过!)
答案1
我仍在研究这个问题,因为这似乎是一件合理的事情,可以期待实现...但到目前为止,我发现的唯一方法是通过一个相当卑鄙的手段,即插入一个带有路径的文件名字段,然后将白色字体颜色应用于文本(即文件名本身),这样最终只剩下路径和后面的一块不可见的文本。
问题是这可能会扰乱格式,而且真的很糟糕。
-=编辑=-
稍微不那么笨拙的解决方案......
如果您不介意在 normal.dotm 中使用宏并在文档中拥有隐藏变量,那么您可能能够使用此宏并在快速访问上设置一个按钮来运行它...我已经尝试过它并且在无宏的文档上运行,因此文档本身不需要宏来使用此方法,我会将它放在我的 normal.dotm 模板中...
Sub updatePath()
'
' updatePath Macro
'
'
Dim myPath As String
myPath = ActiveDocument.Path
If myPath = "" Then
'do nothing as the document has no path... needs to be saved first
Else
If ActiveDocument.Variables.Count = 0 Then
ActiveDocument.Variables.Add Name:="myPath", Value:=myPath
Else
i = 1
Do While i < (ActiveDocument.Variables.Count + 1)
If ActiveDocument.Variables.Item(i).Name = "myPath" Then
ActiveDocument.Variables.Item(i).Value = myPath
End If
i = i + 1
Loop
End If
End If
End Sub
然后只需添加字段代码
DOCVARIABLE myPath
运行上述宏后更新时,它会完全按照您的要求执行。当然,这只需点击两三次,而不是简单的更新,但这确实意味着您导出的文档会获得正确的字段类型,并且只有使用此宏的人才能知道文档的位置应该被储存:)
答案2
不幸的是,如果没有宏就无法对 FILENAME 字段执行此操作,FILENAME 字段不提供省略文件名的选项。
无论如何,这里有一个宏用于插入文件的路径(不带文件名),供可能需要它的人使用。
子插入路径() Dim sPath 作为字符串 sPath = ActiveDocument.路径 如果 sPath = "" 那么 MsgBox “运行此宏之前您需要保存文档。”, _ vbOKOnly,“文档未保存” 别的 sPath = sPath & Application.PathSeparator 选择.TypeText(sPath) 万一 结束子句