【问题标题】:Remove paragraph mark from string从字符串中删除段落标记
【发布时间】:2014-12-25 08:48:38
【问题描述】:

我有一个宏,可以在我的文档中查找所有“标题 1”样式,并将它们列在用户窗体上的 ComboBox 中。

我的问题是我正在使用的 Find 例程也在我希望复制的文本之后选择段落标记 (),并且它正在显示在 ComboBox 中。

如何从字符串中删除它?我试过用replace(),用vbCrLfvbCrvbLfvbNewLine^pvChr(244)Asc(244)替换"",但没有成功.比如——

sanitizedText = Replace(Selection.Text, "^v", "")

谁能帮忙解决这个问题?谢谢。

这是我的表单的外观 -

【问题讨论】:

  • 如果段落标记总是在末尾,也许您可​​以使用 myString = Left(myString, Len(myString) - 1) 删除最后一个字符
  • 试试 Chr(182)。 ascii-code.com
  • @MiguelFebres,您的建议可以解决问题。将其添加为答案,我很乐意接受。
  • @DavidGard 完成,谢谢!

标签: vba ms-word word-2010


【解决方案1】:

这个小脚本替换了在文档中选定的一段文本(即使用光标标记)中位于行首的连字符。它用一个即兴的要点代替它们:(o)

脚本搜索“段落标记后跟连字符”的出现。

我遇到了与上述问题类似的问题,因为我确定段落标记应该是“Chr(13) & Chr(10)”,等于“VbCrLF”,等于“回车,换行” '。然而,'Chr(13) & Chr(10)' 是错误的。赤裸的 Chr(13) 完成了这项工作。

Sub MakeAppFormListPoints()

'Replace list hyphens by (o)

   Dim myRange As Range
   Set myRange = Selection.Range   'What has been marked with the cursor

      Debug.Print myRange  ' Just for monitoring what it does

   myRange = replace(myRange, Chr(13) & "-", Chr(13) & "(o)")

      Debug.Print myRange  ' Just for monitoring what it does

End Sub

(我用它来调整用 Word 编写的文本以适应欧盟 Erasmus+ 计划的官方申请表中严格限制的字符集,以促进终身学习活动。嗯,我学到了一些东西。)

【讨论】:

    【解决方案2】:

    我成功使用了sanitizedText = Replace(Selection.Text, Chr(13), "")13 是“回车”的 ASCII 值。

    【讨论】:

      【解决方案3】:

      你应该使用 ChrW$() 来表示 unicode 字符:

      sanitizedText = Replace(Selection.Text, ChrW$(244), "")
      

      或者,如果段落标记总是在末尾,也许您可​​以使用

      删除最后一个字符
      myString = Left(myString, Len(myString) - 1)
      

      【讨论】:

      • 正如问题 cmets 中所述,您的第二个建议对我来说效果很好。感谢您的帮助。
      猜你喜欢
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 2017-09-06
      相关资源
      最近更新 更多