VBA – 基于其他两个单元更改单元格值

我需要这个脚本来清空4个单元格,并在满足这两个条件时将单元格从完成更改为待定。

我对VBA还是很缺乏经验,所以对于非常基本和难看的代码表示歉意:P

If Range("C5").Value Like "Done" And Range("D5").Value = "1" Then Range("A5:B5").ClearContents If Range("C5").Value Like "Done" And Range("D5").Value = "1" Then Range("D5:E5").ClearContents If Range("C5").Value Like "Done" And Range("D5").Value = "1" Then Range("C5").Value = "Pending" End If End If End If 

我不明白为什么在这种情况下,C5 Cell不会自行更改为待处理状态,因为D5 Cell确实会自行清除。

难道是因为我使用单元格C5的数据validation? 它提取名为= TaskState的列表

TaskState由以下4个选项组成:待处理完成保留完成

非常感谢

尝试这个:

  If Range("C5").Value Like "Done" And Range("D5").Value = "1" Then Range("A5:B5").ClearContents Range("D5:E5").ClearContents Range("C5").Value = "Pending" End If 

问题是,只要清除D列上的内容,它不再是= 1,第三个If返回false。 所以它从来不会在第三个if语句上触发。

如果他们正在testing相同的东西,则不需要其他if语句。