vba 自定义function返回值_用vba解决excel如何求前面连续为0的个数
領(lǐng)導(dǎo)布置了任務(wù),要求每天統(tǒng)計(jì)當(dāng)月的發(fā)展量,并且統(tǒng)計(jì)有多少業(yè)務(wù)員最多連續(xù)多少天發(fā)展為0的情況,統(tǒng)計(jì)的表格是這樣的。
用幾行簡(jiǎn)單的VBA語(yǔ)言就能解決這個(gè)問(wèn)題
首先打開(kāi)vba編輯窗口,點(diǎn)擊開(kāi)發(fā)工具——visual basic(如果沒(méi)有這個(gè)菜單,點(diǎn)擊文件——選項(xiàng)——自定義功能區(qū)——右邊窗口勾上開(kāi)發(fā)工具)彈出編輯窗口,點(diǎn)擊左邊vbaproject下的模塊進(jìn)入編輯界面
我們可以自定義一個(gè)函數(shù)count0,參數(shù)為需要統(tǒng)計(jì)的區(qū)域,思路為從統(tǒng)計(jì)的第一列起,依次統(tǒng)計(jì)相鄰為0的個(gè)數(shù),一直統(tǒng)計(jì)到最后一列,取其中為0次數(shù)最多的為函數(shù)返回值,代碼如下:
Function count0(r As Range)
r1 = r.Rows.Count
If r1 > 1 Then
MsgBox ("該函數(shù)只能在一行中統(tǒng)計(jì)")
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 '發(fā)現(xiàn)當(dāng)前值為0,繼續(xù)看相鄰下一個(gè)
max1 = max1 + 1
Else
k = Num '當(dāng)前不為0,結(jié)束
End If
Next k
If max1 > Max Then
Max = max1
End If
max1 = 0
Next i
count0 = Max
End Function
編寫(xiě)好函數(shù)之后,保存文件,注意在保存文件中選擇excel啟用宏的工具簿,在O列輸入剛剛寫(xiě)好的函數(shù)=count0(b2:l2),將公式復(fù)制到下面幾行,得出結(jié)果如下圖。
總結(jié)
以上是生活随笔為你收集整理的vba 自定义function返回值_用vba解决excel如何求前面连续为0的个数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python except用法和作用_P
- 下一篇: smart原则_为什么现在少有人用德鲁克