我编写了许多宏,其明确目的是在对文本进行其他操作之前先“清理”文本。例如,将其插入新文档中或将其保存在文本文件中。

通常,此过程很繁琐,包括检查文本字符串中的每个字符,然后确定如果该字符不在可接受字符范围之内该如何处理。

VBA包含一种有趣的方法,可用于帮助清除文本。适当地,它称为CleanString方法。您可以按如下所示使用它:

sCleanedUp = Application.CleanString(Selection.Text)

此代码行将sCleanedUp字符串设置为等于“清理”

所选文字的版本。 CleanString方法到底是做什么的?它会删除ANSI范围为1到29的非打印字符,但7、9、10和13除外。对于ANSI字符7,除非它在字符13之前,否则它将被删除。它由选项卡(ANSI 9)代替。对于ANSI字符10,除非以字符13开头,否则将其替换为字符13,在这种情况下将其删除。字符9和13不变。

CleanString方法还会影响1到29范围之外的许多其他字符。 ANSI字符31(可选的连字符),字符172(也是可选的连字符)和字符182(段落标记字符)都被删除。 ANSI字符160(不间断空格),字符176(另一个不间断空格)和字符183(项目符号)均用空格替换。其他所有字符均未更改。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13050)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: