这是函数公式的入门题目,写代码也会用到同样的套路!

文摘   2024-10-23 20:01   上海  




欢迎转发和点一下“看”,文末留言互动!

置顶公众号或设为星标及时接收更新不迷路





小伙伴们好,今天来和大家分享一道VBA的题目。

我们都遇到过这样的题目:在一个字符串中由分隔符分为多个词组,现在要统计一下在这个字符串中有多少个词组,就像下面这道题目。




这道题目非常简单,是函数入门的基础题目,利用SUBSTITUTE函数和LEN函数就可以解决。但如何使用VBA来做这道题目呢?


01

函数法


函数法的基本思路是,词组由空格分隔,那么词组的数量就比空格的数量多一个。如何确定空格的数量呢?将空格替换为空“”,使用替换前的字符串长度减去替换后的字符串长度,就是空格的数量了。




在单元格A4中输入下列公式,回车即可。

=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1

公式就是按照上面讲的逻辑思路书写的,不再赘述了。


02

VBA


VBA的逻辑方式思考这道题目,该如何处理呢?




完整代码如下:

Sub test()    Dim i As Integer, s As String    s = Range("A1")    Do While InStr(s, " ") > 0        s = Mid(s, InStr(s, " "))        s = Trim(s)        i = i + 1    Loop    i = i + 1    [A4] = iEnd Sub

还是要从空格入手。

s = Range("A1")

令变量s的初始值为单元格A1的值

Do While InStr(s, " ") > 0    s = Mid(s, InStr(s, " "))    s = Trim(s)    i = i + 1Loop

使用Instr函数来查找空格。Instr就相当于工作表函数FIND函数。

当找到第一个空格时,Mid函数提取该空格后所有的字符串,并将其赋值给变量s

再利用Trim函数去除字符串左前端的空格,再次赋值给变量s

同时令变量i累计加1

多次循环直至找打最后一个空格。

i = i + 1[A4] = i

由于这是只是计算了空格的数量,而实际词语数要比空格多一个,所以再加上1。最后结果输出即可。


本期内容练习文件提取方式:

链接: https://pan.baidu.com/s/1jlGErzMFr-_aKorQp_vulQ?pwd=3pyu 提取码: 3pyu 


好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!


-END-


长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助


我就知道你“在看”


推荐阅读

Excel应用之家
介绍、交流EXCEL各项功能在工作中的实际应用; 为你答疑解惑;分享各类图表、表格和模板;提供有偿代工服务。
 最新文章