期待计算多次,直到数字重新出现

时间:2017-05-10 02:10:35

标签: excel-vba vba excel

我希望在B列开始计数,直到A列看到#0,然后重置并重新计数直到下一个零,依此类推。

ncdf4

--------------------我尝试过的代码失败了--------------------- -----

   A  B
1  2  1    
2  3  2
3  9  3
4  5  4
5  3  5
6  0  
7  4  1
8  5  2
9  9  3 
10 0  
11 7  1  
.  2  2
.  5  3
.  0

1 个答案:

答案 0 :(得分:1)

以下代码将执行您在问题中要执行的操作:

Dim r As Long
For r = 1 To Cells(Rows.Count, "A").End(xlUp).Row
    If Cells(r, "A").Value = 0 Then 
        Cells(r, "B").Value = ""
    ElseIf r = 1 Then
        Cells(r, "B").Value = 1
    ElseIf Cells(r - 1, "A").Value = 0 Then
        Cells(r, "B").Value = 1
    Else
        Cells(r, "B").Value = Cells(r - 1, "B").Value + 1
    End If
Next

这也可以使用Excel公式

来完成
=IF(A2=0,"",IF(A1=0,1,B1+1))
单元格B2中的

并将其复制下来。但这依赖于从第2行(或更晚)开始的数据,因为如果您的数据在第1行开始,对A1和B1(即前一行)的引用将会崩溃。