我有一张表,我原本打算手动输入此公式并适应单元格:= AND(日期(例如,AE22)> = StartDate(例如G25),日期(与之前相同)&lt ; = EndDate(例如,I25))这是进入Cell AE25的公式。 对于该行中当天(例如,26日至10月)的所有细胞将具有完全相同的公式。然后在第二天(27日至10月),我将不得不更改日期(从AE22到AI22),以便公式正确。 最后,我将条件格式设置为突出显示它,如果它是True,而不是如果它是False。 我想知道我是否能够通过VBA完成所有操作,以便在工作表上有任何更改时自动更新。我确信它可以完成,但我能找到任何可以帮助我的东西。 工作表的目的是在gantlet图表视图中创建动态生产计划。
如果您需要更多信息,请与我们联系。 提前谢谢。
答案 0 :(得分:0)
这非常粗糙,但希望它能给你这个想法。此示例将单元格着色为黄色:
Sub FormatGantt()
Dim r As Range
Dim fromDate, toDate, colDate As Date
Dim row, col As Integer
For row = 25 To 29
fromDate = Cells(row, 7).Value2
toDate = Cells(row, 9).Value2
For col = 31 To 50 Step 4
colDate = Cells(22, col).Value2
If colDate >= fromDate And colDate <= toDate Then
Range(Cells(row, col), Cells(row, col + 3)).Interior.Color = 65535
End If
Next col
Next row
End Sub
以下是此屏幕截图:
这是针对非常狭窄的范围。要完成您要执行的操作,当进行任何更改时,您需要触发Worksheet_Change事件(https://msdn.microsoft.com/en-us/library/office/ff839775.aspx),检测我们更改的单元格并相应地应用下面的格式。