【发布时间】:2015-08-12 16:35:23
【问题描述】:
我正在 Excel 2010 中编写一个宏,以便删除列的多个单元格中的换行符。 实际上,我必须在单元格中搜索 5 个案例。 我列举如下:
- 如果有一个点或逗号,后跟一个空格,然后是一个换行符 (\n),请将其替换为点或逗号(在应用正则表达式之前的任何内容),后跟一个空格
- 如果有一个字符后跟空格,然后是换行符,则将其替换为字符和空格
- 如果有一个字符后跟换行符,则将其替换为字符 + 空格
- 如果有一个字符后跟两个空格,然后是一个换行符,则将其替换为字符 + 空格
- 如果行尾有一个点,请保持原样,因为它是一个结束点。
如您所见,2 和 3 非常相似,所以我认为正则表达式可能类似于 [a-zA-Z0-9]\n 但我不知道...首先,搜索换行符是否正确只需添加 \n其次,如何搜索空白空间。在检测到正则表达式之后,我认为可以用一个 .Replace(Text,"regexp","regexp ") 来解决,其中结尾的空格来自“char”+“”
所以基本上我的问题是,这种模式的正则表达式是什么?
在第 5 种情况下,如何搜索行终止符,使其不会尝试在段落的最后一个点之后搜索换行符。
我可以将 Chr(10) 用于换行,将 Chr(32) 用于空格吗?
顺便说一句,我一直在关注这些参考资料:
How to use RegExp
VBA Split strings
【问题讨论】:
-
听起来您只是想查找以换行符结尾的文本,然后删除换行符。
-
差不多,因为空格也很重要。我必须改进字符串使用的空间,但要保持可读性,因为它是一个固定的段落
-
如果有一个点或逗号紧跟一个换行符怎么办?
-
感谢您的观察,我还没有考虑过。与第一种情况相同,换行符应替换为空格
-
看看我的回答是否符合你的需要。