我正在尝试设置一个宏来调整交叉引用项目的字段代码,以便只显示数字,例如 3 而不是图 3。
我在网上找到了\# "0"
可以添加到字段代码中来执行此操作的方法,而且确实有效。不过我需要经常这样做,所以我尝试通过记录我的击键来设置宏。这是宏:
Sub Macro1() ' ' Macro1 宏 ' ' Selection.MoveLeft 单位:=wdCharacter,计数:=1 ActiveWindow.View.ShowFieldCodes = 非 ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range(Array("文本框 62")).选择 Selection.TypeText 文本:="# ""0""" ActiveWindow.View.ShowFieldCodes = 非 ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range(Array("文本框 62")).选择 End Sub
不幸的是,它不起作用。运行后,字段代码确实会显示,但宏在那之后就结束了,我收到以下错误:
微软 Visual Basic
运行时错误‘9’:
未找到具有指定名称的项目。
我不知道如何解决这个问题,非常感谢任何帮助。
答案1
为了模拟您描述的情况,我插入了两个图表,然后插入了标题,最后插入了两个交叉引用。结果我得到了两个带有文本的字段:图1和图 2。
我利用了你的发现\# "0"
,并整理了以下宏,删除了文本'数字 '只留下数字。它现在仅适用于 Ref 字段,但我猜也可以用于 WdFieldType 枚举中列出的其他字段类型。
Sub UpdateFieldCodes()
For Each Field In ActiveDocument.Fields
If Field.Type = wdFieldRef Then
Field.Code.Text = Field.Code.Text & " \# ""0"""
Field.Update
End If
Next
End Sub