Private?Sub?Worksheet_SelectionChange(ByVal?Target?As?Range)
endcol?=?[IV2].End(xlToLeft).Column
j?=?1
Dim?lishi(1?To?10000)
Static?i?As?Integer
i?=?4
line3:
r?=?1
line1:
If?Cells(2,?i).Value?=?Cells(2,?i?+?1).Value?Then
r?=?r?+?1
i?=?i?+?1
GoTo?line1
Else
lishi(j)?=?r
j?=?j?+?1
i?=?i?+?1
If?i?=?endcol?+?1?Then?GoTo?line2
GoTo?line3
End?If
line2:
maxlishi?=?Application.WorksheetFunction.Max(lishi())
Dim?lishi1(1?To?10000)
Dim?lishi2(1?To?10000)
For?q?=?1?To?j
lishi1(q)?=?lishi(q?*?2?-?1)
lishi2(q)?=?lishi(q?*?2)
Next
maxlishi1?=?Application.WorksheetFunction.Max(lishi1())
maxlishi2?=?Application.WorksheetFunction.Max(lishi2())
Debug.Print?maxlishi1,?maxlishi2
a?=?1
For?z?=?4?To?endcol
If?Cells(2,?z).Value?=?Cells(2,?z?+?1).Value?Then
a?=?a?+?1
Else
GoTo?line4
End?If
Next
line4:
If?a?=?maxlishi1?Then
With?Range("b2").Borders
.LineStyle?=?xlContinuous
.Weight?=?xlMedium
.ColorIndex?=?5
End?With
Range("b2").Font.ColorIndex?=?3
Range("b2").Interior.ColorIndex?=?6
Range("b2").Value?=?"连"?&?Range("d2")?&?maxlishi1
Else
With?Range("b2").Borders
.LineStyle?=?xlNone
End?With
Range("b2").Font.ColorIndex?=?1
Range("b2").Interior.ColorIndex?=?xlNone
If?Range("d2").Value?=?"错"?Then
dx?=?"对"
Else
dx?=?"错"
End?If
Range("b2").Value?=?"历史连"?&?Range("d2")?&?maxlishi1?&?Chr(10)?+?Chr(13)?&?"连"?&?dx?&?maxlishi2
End?If
End?Sub
公式是没办法完成这么复杂的计算和判断的,只能用VBA了,我做了一下,用上面这段代码。。。经过我反复测试是完全正确的。而且全部自动的。根据你的那张图来写的这段代码。所以直接复制,不用更改。
我不知道你这张表有多少数据,所以设数组大小的时候设的是10000,如果你有需要可以直接改代码。如果最近的数据是连对或连错达到历史最大值时将会蓝框黄底红字显示。如果最近的数据没有达到历史最大值时将会黑字显示历史的连错连对记录。如果要更改显示你也可以直接改代码。。。
给你讲讲怎么用这个代码。打开excel,按alt+F11打开VBE,按ctrl+r打开工程资源管理器。然后双击管理器中的sheet1(你的数据在sheet1就点sheet1,在sheet2就点sheet2)。然后把我上面的代码全部复制到右边的代码窗口,像我这个图这样,然后关闭,你在excel中就能看到效果了,如果还有问题联系我!?
你复制的时候注意把代码复制完,不然会出错。。。反正我测试过很多次,结果绝对没问题。。
上一篇:杨幂和胡哥的恋爱历史
下一篇:倩女幽魂那年开始上映的?