【发布时间】:2014-11-12 18:54:44
【问题描述】:
我有一个在 .csv 文件中报告 0 或 1 的服务器可用性脚本。我正在尝试在 Excel 2010 中创建一个 VBA 用户定义函数来分析文件中的每一列(服务器)并突出显示“1”连续出现 3 次以上的所有实例。
Time srv1 srv2 srv3 srv4
2:01:00 AM 0 0 0 0
2:21:00 AM 1 0 0 0
2:41:00 AM 1 0 0 0
3:01:00 AM 1 0 0 0
3:21:00 AM 1 0 0 0
3:41:00 AM 0 0 0 0
4:01:00 AM 0 0 0 0
我完全是 VBA 和 UDF 的新手,但这是我尝试过的(没有成功):
Function HighlightConsecutive(ByRef rng As Range, myNum) As Long
Dim a, i As Long
a = rng.Value
For i = 1 To UBound(a, 2) - 1
If (a(1, i + 1) = myNum) * (a(1, i) = myNum) Then
CountConsecutive = CountConsecutive + 1
End If
If (CountConsecutive >= 3) Then
ActiveCell.Interior.Color = RGB(255, 0, 0)
End If
Next
End Function
我还尝试了一系列不同的解决方案,如在 SO 和其他地方看到的公式和条件格式,但坦率地说,它看起来很笨重而且不够强大
实际文件包含 16 列 @ 720 行,我将分析其中的许多。我的意图是使用过滤来仅查看突出显示的单元格。
如果函数可以忽略大量“1”中的单个“0”,则加分
【问题讨论】:
标签: vba excel user-defined-functions