我有一个带有自动编号和项目符号的word文档。
我选择了需要将自动编号和/或项目符号转换为普通文本的文本。
此外,我需要同时保留所选文字的格式和数字/项目符号。
我已尝试过的内容:
代码(未找到错误,方法或数据成员):
Sub convertNumbersAndBulletsToText()
Selection.ConvertNumbersToText
End Sub
为了保持格式和数字/项目符号,您建议我做什么?
答案 0 :(得分:1)
你几乎已经完成了所有事情!
此代码可以使用:
Sub convertNumbersAndBulletsToText()
Selection.Range.ListFormat.ConvertNumbersToText
End Sub
您的示例返回错误,因为ConvertNumbersToText
方法不适用于Selection
。它适用于Range
!
(看这里:Change selected automatic numbered list to plain text in word)
<强>当心强>!
如果您想进行许多更改,您可能会发现使用ActiveDocument
更容易(见下文)。
但如果想手动(或通过循环),
最后一个元素循环直到第一个一个
(反之亦然,因为自动数字会一直增加1)!
小提示
我个人建议您改用此代码:
Sub convertNumbersAndBulletsToText()
Dim myRange As Range
Set myRange = Selection.Range
myRange.ListFormat.ConvertNumbersToText
End Sub
为什么选择这个?它更灵活一点!而不是Selection.Range
您可以使用任何其他类型的Range
(ActiveDocument
,ActiveDocument.Paragraphs
,myRange.SetRange
等)
仅供参考,如果您不愿意,则无需保存VBA。您可以使用立即窗口启动VBA。
alt+f11
(VBA编辑器),然后按ctrl+g
(立即窗口)。代码(对于立即窗口):
ActiveDocument.ConvertNumbersToText
(它将ActiveDocument
中的自动数字和自动项目符号转换为普通数字和项目符号。
此处任何VBA的结果都是number+tab+text
。如果您想number+space+text
,可以:
ctrl+h
)此.^t
(点和标签).
(点和空格),您可能需要在(自动)编号中使用前导零,然后您可以按ctrl+f9
,在大括号内写SEQ MyList \# "000"
,按alt+f9
完成(看这里:Insert fields in Word (support.office))。但这超出了这个问题,尽管在某些情况下您可能会发现单词fields
非常有用。
总结一下:
您可以在Word中替换纯文本的项目符号和数字: