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 语句测试的是同一事物,则不需要它们。
我需要这个脚本来清空 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 语句测试的是同一事物,则不需要它们。