我需要这个脚本清空4个单元格,并在满足两个条件时将单元格从Done更改为Pending。
我对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使用数据验证吗?它获取名为= TaskState
的列表TaskState由以下4个选项组成: 有待 进行中 等候接听 完成
非常感谢
答案 0 :(得分:2)
试试这个:
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声明。
如果他们正在测试相同的东西,则不需要其他if语句。