计算';0';和';1';在带有Excel VBA的列中

计算';0';和';1';在带有Excel VBA的列中,excel,vba,count,Excel,Vba,Count,我有一个带有“0”和“1”的列,表示机器正在工作(0)或不工作(1)。我想知道“1”和“0”之间的更改次数,以便了解工作周期。 例如: 0000000 11111 00000000 111111 000000 11111111111 000000000(列中) cicle将0更改为1,然后再更改回0。 在本例中,将有3个圆环 提前谢谢你 你说的是一列,但你不显示一列,而是显示一个字符串。所以我假设它是一根弦 Dim s As String s = "00000001111100000000111

我有一个带有“0”和“1”的列,表示机器正在工作(0)或不工作(1)。我想知道“1”和“0”之间的更改次数,以便了解工作周期。 例如:

0000000 11111 00000000 111111 000000 11111111111 000000000(列中)

cicle将0更改为1,然后再更改回0。 在本例中,将有3个圆环


提前谢谢你

你说的是一列,但你不显示一列,而是显示一个字符串。所以我假设它是一根弦

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.
但如果列中有它们,则此数组公式(Ctrl-Shift-Enter)对我适用:

=SUM(IF(A2:A58-A1:A57<>0,1))/2
=总和(如果(A2:A58-A1:A570,1))/2

假设您的58个0和1在A1:A58范围内。

谢谢您的回答。这是一列长度为38681的圆柱。所以我有38681个'1'和'0'。我不确定我是否理解您针对列的解决方案,但对于数组,它看起来非常好。如果您能更新答案,我将不胜感激。再次感谢你。