网站首页 > 技术文章 正文
【分享成果,随喜正能量】如河驶流,往而不返,人命如是,逝者不还。是日已过,命亦随减,如少水鱼,斯有何乐!当勤精进,如救头燃,但念无常,慎勿放逸。。
《VBA经典应用69例》,是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容是教程的应用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实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】世上最愚蠢的行为就是不停给人讲道理,成年人应该记住:位置不同,少言为贵。认知不同,不争不辩,三观不同,浪费口舌。
- 上一篇: web自动化测试键盘操作事件
- 下一篇: Excel中的记录单,效率工具,只有老司机才知道的功能
猜你喜欢
- 2024-12-03 137.Python——PySide6:QInputDialog输入对话框的创建与使用
- 2024-12-03 云中忆低代码之【开关】组件
- 2024-12-03 微信8.0.28正式更新!发现6个实用功能,朋友圈新增访问权限
- 2024-12-03 Word文档如何不显示回车符?让你的文档更美观
- 2024-12-03 「Excel技巧」恼人的数据透视表之怎么去掉(空白)
- 2024-12-03 随手写个接口测试工具,让领导瞧瞧我的能耐
- 2024-12-03 topjui easyui:combobox(下拉列表应用)
- 2024-12-03 学会这两招,PS换行不求人!轻松实现文本排版,小白也能秒变高手
- 2024-12-03 如何在Excel中使用斜线,并在表格的标题中使用单斜线或双斜线
- 2024-12-03 哇塞!这款PPT插件简直太OK了!PPT新手狂喜!网友:就服气它
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 532℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 495℃MySQL service启动脚本浅析(r12笔记第59天)
- 474℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 472℃启用MySQL查询缓存(mysql8.0查询缓存)
- 452℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 431℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 428℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)