从字符串中删除段落标记

12

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

我的问题是,我使用的查找程序也选择了我要复制的文本后面的段落标记(),这个标记也会显示在组合框中。

我该如何从字符串中删除它?我尝试使用replace()函数,用"" 替换 vbCrLfvbCrvbLfvbNewLine^pvChr(244)Asc(244),但都没有成功。例如:

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

有人能帮忙解决这个问题吗?谢谢。

这是我的表格长这样:

enter image description here


2
如果段落标记始终位于末尾,您可以尝试使用 myString = Left(myString, Len(myString) - 1) 去除最后一个字符。 - Miguel Febres
尝试使用 Chr(182)。http://www.ascii-code.com/ - Peekay
@MiguelFebres,你的建议很有用。请将其作为答案添加,我会很乐意接受。 - David Gard
@DavidGard 已完成,谢谢! - Miguel Febres
3个回答

13

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

sanitizedText = Replace(Selection.Text, ChrW$(244), "")
如果段落标记始终位于末尾,您可以使用

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

1
正如在问题评论中提到的那样,你在这里提出的第二个建议对我来说完全有效。感谢你的帮助。 - David Gard

6

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


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+计划正式申请表格所采用的极其有限的字符集。好吧,我学到了一些东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接