我想提出一个代码,检查B:B是否包含2015年1月1日到2015年12月31日之间的日期。如果符合条件,那么我希望代码运行以下代码:
Range("m2").Formula = "=AVERAGEIFS(I:I,B:B,"">=""&DATE(2015,1,1),B:B,""<=""&DATE(2015,12,31),G:G,""=FALSE"")"
如果不符合标准,我不需要采取进一步行动。我还需要以一种方式引用句点,以使代码能够使用所有日期和区域格式。
对此事的任何帮助都非常感谢。
答案 0 :(得分:0)
以下代码应该完成这项工作:
Sub CheckDate()
Dim MyRange As Range: Set MyRange = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
Dim DateCell As Range
For Each DateCell In MyRange
If Year(DateCell) = 2015 Then
DateCell.Offset(0, 11).Formula = "=AVERAGEIFS(I:I,B:B,"">=""&DATE(2015,1,1),B:B,""<=""&DATE(2015,12,31),G:G,""=FALSE"")"
End If
Next DateCell
End Sub
我将MyRange
从B1设置为最后一个非空行,然后我通过它进行For Each
循环并检查日期的年份是否等于2015,如果是我申请你的公式使用.Offset(0, 11)
保持在同一行(0)并将11列向右移动(11),以便移动到同一行中的列M.