为同一行中的特定范围的单元格着色

时间:2018-05-23 17:41:30

标签: excel vba excel-vba gantt-chart

与甘特图相似但不完全相同,我试图在同一行上为可变范围的单元格着色。

As you can see I have a variable number of tasks and a variable start and end for each task

I've created a simple time series where the "Machine 1", which is in the row number 6, is making all the tasks. The time series is in the row number 3.

基本上,我需要为Machine 1行中的tasks表给出的范围着色,使用该时间序列作为开始着色单元格的参考。每项任务都必须有不同的颜色。

由于我是VBA的初学者,我一直试图使用公式来做到这一点:

=IF(AND($C4<=AK$3;$D4>=AK$3);1;0)

C4是任务的开始,AK3是时间序列的位置,D4是任务的结束。然后我会填满整个机器1行。这将在任务范围内给出1,在任务之前和之后给出0,然后我可以格式化行并按照每个单元格中的给定值对单元格进行着色。 (1色和0空白)

问题是这只适用于一个任务,我真的不知道如何更改公式以添加其他任务。我很确定这可以在VBA中完成,但就像我说的那样,我还是初学者。请帮帮我

The final answer should look like this. The color doesn't matter, it's how to color the variable ranges automatically the problem

1 个答案:

答案 0 :(得分:0)

如果我理解你想要什么,可以使用条件格式来完成:

使用以下每个公式的四个条件:

=COLUMN(AK6)<=$D$7+37
=COLUMN(AK6)<=$D$6+37
=COLUMN(AK6)<=$D$5+37
=COLUMN(AK6)<=$D$4+37

并按顺序将它们应用到$AK$6:$BZ$6