从字符串中删除段落标记

时间:2014-10-29 15:08:15

标签: vba word-vba word-2010

我有一个宏,可以找到我文档中的所有“标题1”样式,并在UserForm的ComboBox中列出它们。

我的问题是我正在使用的查找例程也在我要复制的文本之后选择了段落标记(),并且正在组合框中显示。

如何从字符串中删除它?我尝试使用replace(),替换vbCrLfvbCrvbLfvbNewLine^pv,{{ 1}}和Chr(244)Asc(244),但没有任何成功。例如 -

""

任何人都可以帮忙解决这个问题吗?感谢。

以下是我的表单的外观 -

enter image description here

3 个答案:

答案 0 :(得分:10)

您应该使用ChrW$()作为unicode字符:

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

或者,如果段落标记始终位于末尾,则可以使用

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

答案 1 :(得分:4)

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

答案 2 :(得分: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 +计划官方申请表的疯狂限制字符集,以促进终身学习活动。好吧,我学到了一些东西。)