我如何正确使用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 

每行末尾的最后一个条件改变一个string,即“S”,“YS”。 我想避免对每个“S”和“YS”等等使用1行,即每个标准将有多行。 我也想添加另一个处理行的循环

 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 

我的长长的问题和改进清单中的下一步是模拟这个,但是对于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的一些基本语法:

  • 第一部分是指定总和范围
  • 第二部分是指定标准范围,然后是标准
  • 这相信197个标准,我相信!

对于任何看到以上variables的各种资格的新手:

  • i,j和n是longtypes的variables。 n用于计算(dynamic)目标数据集中的行数