首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用字典,统计出给定字符串中每个字符出现的次数

大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解第73讲内容:利用字典,统计出给定字符串中每个字符出现的次数.

在VBA的利用中,字典可以利用在方方面面,今日我们来讲一个利用字典统计给定字符中字符数的方案,有点类似于WORD文档中,统计字数的程序。

实例,在下面的E1单元格中有一个字符串,要统计一下每个字符出现的次数,我们看看利用字典来如何做到。

思路,我们要分别截取字符串的每个字符,放到字典中,在放的同时统计出现的次数。仍是利用字典的排重功能和统计功能,下面看我给出的代码。

Sub mynzsz_73() '第73讲利用字典,统计出给定字符串中每个字符出现的次数

Sheets("73").Select

'字符串取自第五个单元格的数据

mystr = Cells(1, 5)

'创建字典

Set mydic =CreateObject("scripting.dictionary")

'将字符串数据装入字典,并计数

For i = 1 To Len(mystr)

temp = Mid(mystr, i, 1)

If Not mydic.exists(temp) Then

mydic.Add temp, 1

Else

mydic(temp) = mydic(temp) + 1

End If

Next

'清空指定区域

[a:b].ClearContents

'回填数据

[a1:b1] = Array("字符", "出现次数")

[a2].Resize(mydic.Count, 1) =WorksheetFunction.Transpose(mydic.keys)

[b2].Resize(mydic.Count, 1) =WorksheetFunction.Transpose(mydic.items)

Set mydic = Nothing

End Sub

代码截图:

代码讲解:

1上述代码实现了从一个字符串中统计字符数的功能,首先将字符串放到mystr中,利用Mid(mystr,i, 1)函数来分别提取每个字符,放到字典中,用键值统计出现的次数.

2 temp= Mid(mystr, i, 1)从mystr的字符串中第的位置提取一个字符,也就是说将字符串的每个字符都要提取出来。

3 IfNot mydic.exists(temp) Then

mydic.Add temp, 1

Else

mydic(temp) = mydic(temp) + 1

End If

将每个字符放到字典的键中,键值计数,每次出现重复值加1.

4 '清空指定区域

[a:b].ClearContents

'回填数据

[a1:b1] = Array("字符", "出现次数")

[a2].Resize(mydic.Count, 1) =WorksheetFunction.Transpose(mydic.keys)

[b2].Resize(mydic.Count, 1) =WorksheetFunction.Transpose(mydic.items)

上述预计清空指定区域,回填数据,这里利用了分别填键和键值的方法。当然,还可以有其他的方法。

5 Set mydic = Nothing

上述代码清空内存.

下面看代码的运行:

今日内容回向:

1如何从字符串中统计每个字符出现的次数?

2在数据回填时有哪些方法可以利用?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200109A0NLVO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券