如何将自动编号和项目符号转换为Word中的纯文本?

时间:2017-06-18 15:20:59

标签: vba ms-word word-vba

我有一个带有自动编号和项目符号的word文档。

我选择了需要将自动编号和/或项目符号转换为普通文本的文本。

此外,我需要同时保留所选文字的格式数字/项目符号

我已尝试过的内容

  • 剪切段落并特别粘贴它们(但它打破格式化);
  • 没有按下“编号”/“项目符号”按钮(但它会删除所有数字和项目符号);
  • 使用VBA-macro(但它返回错误):

代码(未找到错误,方法或数据成员):

Sub convertNumbersAndBulletsToText()
   Selection.ConvertNumbersToText
End Sub

为了保持格式和数字/项目符号,您建议我做什么?

1 个答案:

答案 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您可以使用任何其他类型的RangeActiveDocumentActiveDocument.ParagraphsmyRange.SetRange等)

  • 仅供参考,如果您不愿意,则无​​需保存VBA。您可以使用立即窗口启动VBA。

    • alt+f11(VBA编辑器),然后按ctrl+g(立即窗口)。
    • 粘贴代码,按enter键。
    • 瞧!

代码(对于立即窗口):

ActiveDocument.ConvertNumbersToText

(它将ActiveDocument中的自动数字和自动项目符号转换为普通数字和项目符号。

  • 此处任何VBA的结果都是number+tab+text。如果您想number+space+text,可以:

    • 最后替换(按ctrl+h)此.^t(点和标签).(点和空格),
    • 或在最开始1)选择列表,2)右键单击它,3)单击“Adjuct list idents”,4)单击“Follow number with:Space”。 (看这里:Adjust the spacing for a single list item (support.office)
  • 您可能需要在(自动)编号中使用前导零,然后您可以按ctrl+f9,在大括号内写SEQ MyList \# "000",按alt+f9完成(看这里:Insert fields in Word (support.office))。但这超出了这个问题,尽管在某些情况下您可能会发现单词fields非常有用。

  

总结一下:

您可以在Word中替换纯文本的项目符号和数字:

  • 选择(见上文);
  • for ActiveDocument(见上文);
  • 带有范围(msdn中的示例);
  • 带有循环的
  • (欢迎举例)。但请记住,您要从文档末尾循环到开头。