已经帮你调试出一段VBA代码,复制以下文字(本段不要),打开EXCEL,右键工作表标签,查看代码,粘贴。双击excel任意单元格即可执行代码。
'求A列是2或0 且 B列是2或1 且 C列是3或7,也即是ABC列组合是其中:223 227 213 217 023 027 013 017的一种即满足条件,
'求最大跨度(差值最大的相邻两个满足条件的行号差)和最大行号值(最后一个满足条件的行)
'本段代码只判断ABC三列数,以空行为数据结束依据。双击任意单元格开始判断。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim a, b, c, R, R0, K, i
i = 1
R0 = 0
R = 0
K = 0
loop1:
a = Range("a" & i)
b = Range("b" & i)
c = Range("c" & i)
If (a = 2 Or a = 0) And (b = 2 Or b = 1) And (c = 3 Or c = 7) Then
'Range("a" & i).Interior.ColorIndex = 6
'删除上一行第一个 '号,可标记所有满足条件的行颜色。
If R0 = 0 Then R0 = i & R = i
If i - R > K Then
R0 = R
R = i
K = R - R0
Else
R0 = R
R = i
End If
End If
i = i + 1
If Range("a" & i) <> "" Then GoTo loop1
MsgBox "最大跨度是: " & K & ", 最大行号值是: " & R
End Sub