1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vba 自定义function返回值_用vba解决excel如何求前面连续为0的个数

vba 自定义function返回值_用vba解决excel如何求前面连续为0的个数

时间:2018-09-11 09:00:34

相关推荐

vba 自定义function返回值_用vba解决excel如何求前面连续为0的个数

领导布置了任务,要求每天统计当月的发展量,并且统计有多少业务员最多连续多少天发展为0的情况,统计的表格是这样的。

用几行简单的VBA语言就能解决这个问题

首先打开vba编辑窗口,点击开发工具——visual basic(如果没有这个菜单,点击文件——选项——自定义功能区——右边窗口勾上开发工具)弹出编辑窗口,点击左边vbaproject下的模块进入编辑界面

我们可以自定义一个函数count0,参数为需要统计的区域,思路为从统计的第一列起,依次统计相邻为0的个数,一直统计到最后一列,取其中为0次数最多的为函数返回值,代码如下:

Function count0(r As Range)

r1 = r.Rows.Count

If r1 > 1 Then

MsgBox ("该函数只能在一行中统计")

End If

Num = r.Columns.Count

Max = 0

max1 = 0

For i = 1 To Num

For k = i To Num

If r.Columns(k) = 0 Then '发现当前值为0,继续看相邻下一个

max1 = max1 + 1

Else

k = Num '当前不为0,结束

End If

Next k

If max1 > Max Then

Max = max1

End If

max1 = 0

Next i

count0 = Max

End Function

编写好函数之后,保存文件,注意在保存文件中选择excel启用宏的工具簿,在O列输入刚刚写好的函数=count0(b2:l2),将公式复制到下面几行,得出结果如下图。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。