我在下面有以下循环:
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"。我想避免每个人使用1行" S"和" YS"等等,即每个标准将有许多行。我还想添加另一个处理行
的for循环答案 0 :(得分: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 :(得分:-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的一些基本语法:
任何新手都会查看上述变量的各种资格: