VBA - 根据其他两个单元格更改单元格值

VBA - Change Cell Value based on two other cells

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

我在 VBA 方面仍然非常缺乏经验,所以对于非常基本和丑陋的代码表示歉意:P[​​=12=]

 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 在这种情况下不会将自己更改为 Pending,因为 D5 Cell 会自行清除。

可能是因为我对单元格 C5 使用了数据验证?它获取名为 =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 returns 为假。所以它永远不会在第三个 if 语句上触发。

如果其他 if 语句测试的是同一事物,则不需要它们。