《VBA经典应用69例》(版权10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:VBA经典应用69例应用7:从字符串中删除特定字符
【分享成果,随喜正能量】无论是哪一种感情,珍惜才是最好的相处。余生请谨记:
珍惜当下,善待自己,往事不记,后事不提。。
应用7 利用VBA,从字符串中删除字符
我们这个专题的内容是字符串String的处理,在我的各套教程中一直把字符串处理作为一项非常重要的知识点来讲解。对于VBA语言而言,字符串操作是编程中的关键技能。VBA 开发人员的技能水平通常取决于他操纵字符串的程度。Excel 在数学操作方面非常强大,但文本操作却需要我们具有一定的创造力和经验。
在本专题中,我将向展示如何从字符串中删除字符,学习如何通过替换、左、右、修剪和 Instr函数功能来处理它们。
1 从字符串中删除特定字符
从字符串中删除字符最基本的方法是利用替换函数Replace,我们先看一下这个方法的语法。
Replace 函数:返回一个字符串, 它是从起始位置 (默认值为 1) 开始的字符串表达式的子字符串, 其中指定的子字符串已被另一个子字符串替换为指定的次数。
语法:Replace(expression, find, replace, [ start, [ count, [ compare ]]])
参数:
1)expression 必需。包含要替换的子字符串的字符串表达式。
2)find 必需。 要搜索的子字符串。
3)replace 必需。 替换子字符串。
4)start 可选。要搜索的字符串在expression的起始位置。如果省略,则假定此值为 1。
5)count 可选。要执行子字符串替换的次数。 如果省略, 则默认值为-1, 表示进行所有可能的替换。
6)compare 可选。 指示计算子字符串时使用的比较类型的数值。
compare 参数可以包含以下值:
1)vbUseCompareOption -1 使用Option Compare语句的设置来执行比较。
2)vbBinaryCompare 0 执行二进制比较。
3)vbTextCompare 1 执行文本比较。
4)vbDatabaseCompare 2 仅用于 Microsoft Access。根据数据库中的信息执行比较。
Replace 将返回以下值:
1) expression 是零长度的 返回零长度字符串 ("")
2) expression 是 Null 返回错误。
3) find 是零长度 返回expression 的副本。
4) replace 是零长度 expression的副本,所有出现的find都已删除。
5) start > Len(expression) 零长度字符串。 字符串替换从start指示的位置开始。
6) count 是 0 expression 的副本。
实例一:区分大小写替换
我们先举个实例,这个实例中我们希望从字符串"aabbccAABBCC"中删除所有的自符串"b",我们预期输出为"aaccAABBCC"。在下面代码的第 6 行中,Replace方法查找"b",并将其替换为空字符串""。下面看我给出的代码:
Sub mynzA()
Dim myInput As String
Dim myResult As String
myInput = "aabbccAABBCC"
'从输入字符串中删除所有出现的"b"
myResult = Replace(myInput, "b", "")
MsgBox myResult
End Sub
代码截图:
代码讲解:myResult = Replace(myInput, "b", "") 就是利用了Replace函数查找"b",并将其替换为空字符串""。
代码输出的效果:
输出的结果是符合我们最初预期的。但是,这种采用替换的方法只有小写"b"字符被删除,而不是"B"。我们可以修改代码实现自动处理大小写两种情况。
待续
本讲内容参考程序文件:应用007.xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: