2016-12-14 61 views
1

我具有低於下面的循環:如何使用For循環正確多個條件

With Sheets("Sheet Name") 
    For i = 2 To 26 
     .Cells(11, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), "S") 
     .Cells(12, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), "YS")    
    Next i 
End With 

在一個字符串,即「S」,「YS」的每一行的變化結束時的最後的狀態。我想避免對每個「S」和「YS」等等使用1行,即每條標準都會有很多行。我還再要添加另一個for循環與行

+0

您是什麼意思** _...需要找到一種方法將其放入1行... _ ** ? – FDavidov

+0

抱歉,由於缺乏清晰度,以上更新@FDavidov – user1

回答

4
codes = Array("S", "YS") 
For i = 2 To 26 
    For j = 0 to UBound(codes) 
     Sheets("Sheet Name").Cells(11+j, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), codes(j)) 
    Next j 
Next i 
+1

完美的作品!我知道必須有辦法,更需要學習陣列! – user1

-1

在我漫長的問題和改進列表中的下一個步驟是模擬這一點,但對涉及SUMIFS,因爲我一直在尋找的成本數據。

請看下面,我希望別人可以從中受益,也許改善!

With Sheets("Operations Schedules -Summary") 
    For i = 2 To 26 
     For j = 0 To UBound(codes) 
      .Cells(37 + j, i).Formula = Application.WorksheetFunction.SumIfs(Sheets("Sheet1").Range("AD8:AD" & n), Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), codes(j)) 
     Next j 
    Next i 
End With 

SUMIFS的一些基本語法:

  • 第一部分是指定的總和範圍
  • 第二部分(S)是要指定的條件的範圍內,然後將性判據
  • 這相信197個標準我相信!

對於任何新手看的變量上述各種條件:

  • I,J,和n型長的變量。 n用於計數(動態),目標數據集中的行數