2017-05-10 40 views
-2

我期待從列B開始計數,直到列A看到#0,然後重置並重新計數直到下一個零,如此等等。打算重複次數,直到數字再次出現

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 

--------------------代碼我已經嘗試過並失敗----------------- ---------

check = False 

For i = 2 To Rows.Count 
For j = 1 To 50 
     Cells(i, 2).Value = i 
    If Cells(i, 1).Value = Cells(6, 6).Value Then 
     check = True 
    End If 
Next j 
If check = True Then 
j = 1 
End If 

toAdd = True 
Next i 
+0

您是否嘗試過任何VBA代碼?如果是這樣,哪些不起作用?是否有一個原因,你不想只寫一個Excel公式? – YowE3K

+0

我已經嘗試使用循環計數到第一個零,但我無法弄清楚如何開始下一個零。 –

+0

單元格F6如何影響事物?這是數字'0'? – YowE3K

回答

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)) 

in cell B2 and copy it down。但是,這依賴於從第2行開始的數據(或更高版本),因爲如果數據從第1行開始,對A1和B1(即上一行)的引用會崩潰。

+0

是的,他們都很好!哇這麼多不同的方法,生病嘗試消化這一點。謝謝! –

+0

我看着這行代碼,無法弄清楚。這主要是針對第1行的問題嗎? [ElseIfr = 1 Then Cells(r,「B」)。Value = 1] –

+0

@FrankLe - 是的,這只是爲了處理第1行 - 因爲後續的測試看着不會工作的行'r - 1'如果'r'是1(Excel沒有第0行) – YowE3K