excel中,如何用vba语句实现对某一区域内,相同字符串的统计。

例如A3单元格输入的是‘李红’,A4单元输入的是‘李红、王磊’,A5单元格输入的是‘李红、赵云、奇科’。。。。。。。怎样编写vba语句来统计‘李红’这个名字出现了三次。希... 例如A3单元格输入的是‘李红’,A4单元输入的是‘李红、王磊’,A5单元格输入的是‘李红、赵云、奇科’。。。。。。。怎样编写vba语句来统计‘李红’这个名字出现了三次。希望大虾们能帮帮忙,在这里先谢谢了。 展开
 我来答
了尘和尚
2011-07-31 · 幻人心识本来无,罪福皆空无所住。
了尘和尚
采纳数:4256 获赞数:20081

向TA提问 私信TA
展开全部
代码如下:

Sub aa()
Dim i, k As Integer
Dim s As String
k = 0
s = "李红"
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.IsNumber(WorksheetFunction.Find(s, Cells(i, 1))) Then
k = k + 1
End If
Next i
MsgBox "“李红”出现:" & k & "次。"
End Sub
追问
上面的语句执行时报错了,if WorksheetFunction.IsNumber(WorksheetFunction.Find(s, Cells(i, 1)))这一步是怎样进行的判断的?希望高人再指点一下。另外find方法是返回包含所查找字符串的单元格怎么运用find把找到的字符串进行统计呢?我是初学者看,请大侠帮忙再看看啊。
追答
怎么可能呢?我没有调试通过会贴上去吗?
好好检查一下哪 个字符输错了,最好的方法是打开VBE编辑器后,直接复制粘贴上去再运行就可以了。
WorksheetFunction.Find(s, Cells(i, 1))这段代码是调用工作表函数FIND,在A列单元格中查找s,也就是"李红",然后再调用工作表函数ISNUMER判断返回值是否为数字,如果是数字时,就将计数器加1 ,否则计数器不会加1,计数器K的最终结果就是你需要的数。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式