2017-06-18 180 views
0

我有一個自動編號和項目符號的文檔。如何將Word中的自動編號和項目符號轉換爲純文本?

我選擇了需要將自動編號和/或符號轉換爲普通文本的文本。

此外,我需要保留所選文本的格式號碼/項目符號

我已經嘗試過

  • 切段和特殊粘貼他們(但它打破格式化);按下「編號」/「bulleting」按鈕(但會刪除所有數字和項目符號);
  • 使用VBA宏(但它返回一個錯誤):

代碼(錯誤,方法或數據成員找不到):

Sub convertNumbersAndBulletsToText() 
    Selection.ConvertNumbersToText 
End Sub 

你有什麼建議我做的爲了保持格式和數字/項目符號?

回答

1

你幾乎自己做了一切!

此代碼將工作:

Sub convertNumbersAndBulletsToText() 
    Selection.Range.ListFormat.ConvertNumbersToText 
End Sub 

你的榜樣,因爲ConvertNumbersToText方法不能與Selection工作返回錯誤。它適用於Range

(看這裏:Change selected automatic numbered list to plain text in word


當心

如果您想進行很多更改,您可能會發現使用ActiveDocument(如下所示)更容易。

但如果想要做手工(或通過環),
那麼你從要轉換直到第一一個
(而不是相反最後一個元素最好循環,因爲自動數字隨後會一直增加)!


小tips

個人而言,我會建議你使用此代碼來代替:

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(即時窗口)。
    • 粘貼密碼,按回車。
    • Voilà!

代碼(用於即時窗口):

ActiveDocument.ConvertNumbersToText 

(它自動編號和自動子彈到處轉換爲正常數字和子彈ActiveDocument)。

  • 這裏的任何VBA的結果將是number+tab+text。如果你想有number+space+text您可以:

    • 無論是在最後更換(按ctrl+h)這一個.^t(點和標籤)爲.(點和空白),
    • 或者在開始的時候1 )選擇列表,2)右鍵單擊它,3)單擊「Adjuct list idents」,4)單擊「跟隨編號:空格」。 (看看這裏: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(look above);
  • 與範圍(MSDN中的例子);
  • 帶循環(歡迎例子)。但請記住,您要從文檔的末尾循環到開頭。
相關問題