我有一个有 300 行和 50 列的数据库。
单元格中填充的是zero
、one
或blank
。
我正在寻找一个公式,可以将其代入第 51 列,表示 300 行,这样就可以知道有多少组7 个连续零每行都有。
答案1
考虑以下用户定义函数:
Public Function BlockCount(rng As Range) As Long
Dim ItemCount As Long, r As Range, v As String
BlockCount = 0
ItemCount = 0
For Each r In rng
v = r.Text
If v = "0" Then
ItemCount = ItemCount + 1
If ItemCount = 7 Then
ItemCount = 0
BlockCount = BlockCount + 1
End If
Else
ItemCount = 0
End If
Next r
End Function
用户定义函数 (UDF) 非常容易安装和使用:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要从 Excel 使用 UDF:
=BlockCount(A1:Z1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关 UDF 的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其工作!