excel vba 网页数据抓取(“VBA之EXCEL应用”的第九章“字符串(String)的操作)
优采云 发布时间: 2022-02-12 07:20excel vba 网页数据抓取(“VBA之EXCEL应用”的第九章“字符串(String)的操作)
今天的内容是《VBA的EXCEL应用》第9章中的“字符串(String)的操作”。这是第四节“反向文本排序的实现”。本套教程从简单的宏录制开始,一直到表单的构建。内容丰富,案例多。每个人都可以很容易地掌握相关知识。这套教程是为初学者准备的。全书三卷十七章。都是我们在使用EXCEL过程中需要掌握的知识点。希望每个人都能掌握和使用。
第四节 文本逆向排序的实现
大家好,我们来说说逆向文本排序的实现。本章的内容是字符串函数。字符串函数可以实现很*敏*感*词*。这些功能在我们平时写代码的时候可能只是少数几个应用,但这些应用确实是程序应用过程中不可缺少的一部分。为了灵活使用这些功能,我也尝试向大家介绍各种应用。
1 实现反向文本排序的场景
我们看下面的工作表界面:
在上面的工作表界面中,A列有几个字符串,要实现字符串的方向排序,比如原来是123,反是321,就是批量转换。这有时在实际代码中使用。
2 实现逆向文本排序的思路分析
为了实现文本的定向排序,我们需要使用len函数求出字符串中的字符总数,然后在所有字符之间建立一个循环,一次提取一个字符,并且排序提取是从后到前一一提取然后合并。
那么如何逐个提取字符串中的字符呢?这需要使用 mid 函数。该函数可以控制提取字符的起始位置和提取字符的个数。然后我们可以控制每次提取字符的个数为1,控制提取位置从最后一个到最后一个。一一提取。
3 逆向文本排序的代码和代码解释
我们来看下面的代码:
sub mynzD() '实现文本的方向排序操作
将 myName 调暗为字符串
我 = 1
Do While Cells(i, 1) ""
单元格(i, 2).Value = ""
我的姓名 = 单元格(我,1).Value
myLen = Len(我的名字)
对于 t = 0 至 myLen - 1
myTem = myTem & Mid(myName, (myLen - t), 1)
下一个
单元格(i, 2).Value = "'" & myTem
我的 Tem = ""
我 = 我 + 1
环形
结束子
代码截图:
代码解读:
1) Cells(i, 2).Value = "" 清空要回填的单元格
2) myName = 单元格(i, 1).Value
上面的代码将A列的单元格值放入一个变量中
3) myLen = Len(myName)
上面的代码查找单元格字符串的长度
4) 对于 t = 0 到 myLen - 1
...
下一个
上面的代码在所有字符之间创建了一个循环
5) myTem = myTem & Mid(myName, (myLen - t), 1)
上面使用Mid函数提取字符,一次一个,提取位置为(myLen - t),提取后使用“&”函数组合字符串。
6)细胞(i, 2).Value = "'" & myTem
回填得到的新字符串;在回填之前添加“'”会使单元格格式化为文本,这样做是为了将数字转换为文本。
7)myTem = ""
清除 myTem 变量以准备下一个循环。
4 文本逆向排序代码的实现效果
最后,我们看一下代码的实现:
可以看出,我们可以轻松实现文本的逆向排序。
今天的内容回来了:
1) 如何实现字符串的逆向排序?
2) 如何一次提取一个字符串?
3) 如何将单元格设置为文本格式?如何在代码中处理它?
4) 练习:如果通过将提取的每个字符填充到后续的每个单元格中来逐个分解字符串,如何实现代码?
本讲内容参考程序文件:workbook 09.xlsm