2014-10-29 103 views
6

我有一个宏可以在我的文档中查找所有'标题1'样式,并将它们列出在用户窗体上的组合框中。删除字符串中的段落标记

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

我该如何从字符串中删除它?我试过期运用replace(),与""更换vbCrLfvbCrvbLfvbNewLine^pvChr(244)Asc(244),但一切都没有succeeeded。例如 -

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

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

这里是我的表单外观 -

enter image description here

+2

如果段落标记总是在最后,也许您可​​以使用myString = Left(myString,Len(myString) - 1) – 2014-10-29 15:40:53

+0

尝试Chr(182)来删除最后一个字符。 http://www.ascii-code.com/ – Peekay 2014-10-29 15:42:15

+0

@MiguelFebres,你的建议在这里做的伎俩。添加它作为答案,我会很乐意接受。 – 2014-10-29 16:38:09

回答

9

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

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

或者,如果段落标记总是在最后,也许你可以删除使用的最后一个字符

myString = Left(myString, Len(myString) - 1) 
+0

感谢您的建议,但它不起作用。 – 2014-10-29 16:36:36

+0

正如在问题评论中提到的,这里的第二个建议对我来说工作得很好。谢谢你的帮助。 – 2014-10-30 10:13:26

4

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

0

这个小小的脚本用文档中选定的一段文字(即用光标标记)替换了一行开头的连字符。它用一个即兴点代替它们:(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中的疯狂受限的字符集为欧盟伊拉斯谟+计划正式申请表格文本,促进终身学习活动。好吧,我学到了一些东西。)