我正在创建一个日历,用于检查项目截止日期的报告以及与日历匹配的任何日期,然后突出显示匹配的单元格,并在该月右侧的2列中写入项目的日期和名称。
我这一周都在做这个,一年中的所有12个月。所以,不是每年的每个星期都这样做,而是想做一个循环,循环代码1周,5次。然后把它放在一个循环中,它会在12个月内完成。我有一个月的第一周的代码,并希望将变量“x”添加到范围中,以便我可以在一周之后将范围向下移动1行以添加1到下一周。我无法找到将“x”放在范围内的方法。
任何帮助都将在这里得到赞赏我的代码:
'for january
Set januaryRng = ActiveSheet.Range("A2:G2")
i = 2
For x = 0 to 4
For Each cell In januaryRng
If cell <> "" Then
For i = 2 To lastRow
If cell.Value = Sheets("Incident Summary Report").Cells(i, "AI").Value Then
Sheets("sheet1").Cells(2 + x, "I") = Sheets("sheet1").Cells(2 + x, "I") & Chr(10) & Sheets("Incident Summary Report").Cells(i, "B").Value
ElseIf cell.Value = Sheets("Incident Summary Report").Cells(i, "AJ").Value Then
Sheets("sheet1").Cells(2 + x, "I") = Sheets("sheet1").Cells(2 + x, "I") & Chr(10) & Sheets("Incident Summary Report").Cells(i, "B").Value
End If
If cell.Value = Sheets("Incident Summary Report").Cells(i, "AI").Value Then
Sheets("sheet1").Cells(2 + x, "H") = Sheets("sheet1").Cells(2 + x, "H") & Chr(10) & Sheets("Incident Summary Report").Cells(i, "AI").Value
ElseIf cell.Value = Sheets("Incident Summary Report").Cells(i, "AJ").Value Then
Sheets("sheet1").Cells(2 + x, "H") = Sheets("sheet1").Cells(2 + x, "H") & Chr(10) & Sheets("Incident Summary Report").Cells(i, "AJ").Value
End If
Next i
Else
End If
Next cell
Next x
答案 0 :(得分:2)
我想 我知道你现在要去哪里
您循环播放的范围(ActiveSheet.Range("A2:G2")
)仅包含第一周的7天(单元格),对吧?
您需要做的是在x循环迭代时设置新范围。
这意味着您需要移动此部分:
Set januaryRng = ActiveSheet.Range("A2:G2")
在这部分下面:
For x = 0 to 4
然后你需要改变你的范围参考
"A2:G2"
至"A" & 2 + x, "G" & 2 + x
总而言之,它看起来像是
'for January
i = 2
For x = 0 to 4
Set januaryRng = ActiveSheet.Range("A" & 2 + x, "G" & 2 + x)
For Each cell In januaryRng
If cell <> "" Then
......
这样,januaryRng将从.Range("A2", "G2")
更改为.Range("A3", "G3")
...依此类推。
此 应该。