使用Excel VBA计算列在“0”和“1”之间的转换

我有一个列'0'和'1',这意味着一台机器正在工作(0)或不(1)。 我想知道“1”和“0”之间的变化数量,以便知道工作时间。 例:

0000000111110000000011111100000011111111111111111000000000(列中)

Cicle将会变为1,然后变回0.在这个例子中,会有3个Cicle。

先进的谢谢你。

你说一个专栏,但是你不显示一个专栏,你显示看起来像一个string。 所以我认为这是一个string。

Dim s As String s = "0000000111110000000011111100000011111111111111111000000000" Do While InStr(s, "00") s = Replace(s, "00", "0") Loop Do While InStr(s, "11") s = Replace(s, "11", "1") Loop MsgBox (Len(s) - 1) / 2 & " cycles." '3 cycles. 

但是如果你确实有一个列,那么这个数组公式( CtrlShiftEnter )适用于我:

 =SUM(IF(A2:A58-A1:A57<>0,1))/2 

假设你的58个零点在A1:A58范围内。