2014-05-25 47 views
0

我想創建一個計數,通過列運行檢查值是否在指定的標準之間比它符合它(工程)。VBA更改循環的參數

但我想窩它在另一個for循環,所以一旦它完成第一類

x=4 
y=13 
So For a= x To y 
Runs Code 

then i want it to run 

For a = 14 To 27 
code code code 

x= x+14 
y= y+14 

For a = 28 to 41 
etc.... 

這裏是我的代碼

Sub count() 

    Dim c, d As Long 
    Dim x As Integer 
    Dim y As Integer 

    c = 0 
    d = 0 
    x = 4 
    y = 13 

    lr = ThisWorkbook.Sheets("Probability").Cells(Rows.count, 2).End(xlUp).Row 

    For a = x To y 
     For b = 2 To lr 
      If Cells(b, 2) >= Cells(a, 10) Then 
       c = c + 1 
      End If 
      If Cells(b, 2) >= Cells(a, 11) Then 
       d = d + 1 
      End If 
      Range("L" & a).Value = c 
      Range("M" & a).Value = d 
     Next b 
     c = 0 
     d = 0 

     x = x + 14 
     y = y + 14 
     Range("O1").Value = x 
     Range("P1").Value = y 
    Next a 
    End Sub 
+0

For Loop不能這樣工作。即使你改變了它內部的x,a仍然會有第一個x的值爲4.現在你想如何增加a,但不清楚。首先,你將它分配給4,然後是14,然後是28?如果你堅持+14區間,是不是4,18,32?或者我錯過了什麼。 – L42

回答

0

我重讀你的問題,你可能會錯過另一個循環如下。

Do 
    For a = x To y 
     For b = 2 To lr 
      If Cells(b, 2) >= Cells(a, 10) Then c = c + 1 
      If Cells(b, 2) >= Cells(a, 11) Then d = d + 1 
      Range("L" & a).Value = c 
      Range("M" & a).Value = d 
     Next b 
     c = 0 
     d = 0 
    Next a 
    x = x + 14 
    y = y + 14 
    Range("O1").Value = x 
    Range("P1").Value = y 
Loop Until "Set condition here" 

我不過我還是誤解了你的問題,註釋掉澄清。

+0

謝謝!我得到它的工作,開始插入一個while循環! – user3457548

+0

太棒了!如果解決方案適用於您,請參閱[接受答案](http://stackoverflow.com/help/someone-answers)。這將幫助您贏得聲譽並吸引更多用戶在未來幫助您。 – L42