下面,我们将查看Excel VBA中的程序,该程序将按计划执行的任务的背景色设置为绿色,而将按计划执行的任务的背景色设置为红色。
情况:
在Sheet1上,我们有三个任务(X,Y,Z)。“ 1”表示任务已完成。如果直到今天(包括今天)为止的每一列中都存在“ 1”,则任务正在按计划进行。今天是6月6日。任务X和Y已按计划进行。任务Z落后于计划(单元格E8中没有“ 1”)。
创建一个工作表更改事件。当您更改工作表上的单元格时,Excel VBA将执行添加到工作表更改事件中的代码。
1.打开Visual Basic编辑器。
2.在项目浏览器中双击Sheet1(Sheet1)。
3.从左侧下拉列表中选择“工作表”。从右边的下拉列表中选择更改。
将以下代码行添加到工作表更改事件:
4.声明两个Integer类型的变量。
5.添加Do While循环。
I = I + 1
循环
说明:对于i = 0,Excel VBA检查任务X,对于i = 1,任务Y等。Excel VBA在Cells(6 + i,1).Value 为空(没有更多要检查的任务)时离开Do While循环。。
将以下代码行(分别位于6、7和8)添加到Do While循环中。
6.用值0初始化变量j。
7.假设任务按计划进行,则将任务的背景色设置为绿色(当然不一定要如此)。
8.添加另一个Do While循环。
If Cells(6 + i,2 + j).Value = 0 then Cells(6 + i,1).Interior.ColorIndex = 3
j = j + 1
环
注意:Date函数返回今天的日期。
说明:对于i = 0,j = 0,Excel VBA检查单元格B6。对于i = 0,j = 1,Excel VBA将检查单元格C6,等等。如果直到今天(包括当日)的每一列中都存在“ 1”,则任务正在按计划进行。如果Excel VBA找到“ 0”,则它将任务的背景色设置为红色。
9.测试程序。例如,指示6月6日的任务Z已完成。结果,任务Z将自动变为绿色。