小兔网

下面,我们将查看Excel VBA的程序,该程序将按计划执行的任务的背景色设置为绿色,而将按计划执行的任务的背景色设置为红色。

情况:

在Sheet1上,我们有三个任务(X,Y,Z)。“ 1”表示任务已完成。如果直到今天(包括今天)为止的每一列中都存在“ 1”,则任务正在按计划进行。今天是6月6日。任务X和Y已按计划进行。任务Z落后于计划(单元格E8中没有“ 1”)。

Excel VBA中的计划任务

创建一个工作表更改事件。当您更改工作表上的单元格时,Excel VBA将执行添加到工作表更改事件中的代码。

1.打开Visual Basic编辑器

2.在项目浏览器中双击Sheet1(Sheet1)。

3.从左侧下拉列表中选择“工作表”。从右边的下拉列表中选择更改。

Excel VBA中的工作表更改事件

将以下代码行添加到工作表更改事件:

4.声明两个Integer类型的变量。

暗淡作为 整数,J 作为 整数

5.添加Do While循环

 虽然将细胞(6 + 1,1)。价值<> “”


    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。

j = 0

7.假设任务按计划进行,则将任务的背景色设置为绿色(当然不一定要如此)。

单元格(6 + i,1).Interior.ColorIndex = 4

8.添加另一个Do While循环。

Do While Cells(4,2 + j).Value <= Date
    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将自动变为绿色。

计划结果任务