【发布时间】:2016-02-01 19:31:33
【问题描述】:
我需要这个脚本来清空 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 单元不会将自身更改为待处理,因为 D5 单元确实会自行清除。
可能是因为我对单元格 C5 使用了数据验证?它获取一个名为 =TaskState
的列表TaskState 由以下 4 个选项组成: 待办的 进行中 等候接听 完成
非常感谢
【问题讨论】:
-
为什么你在相同的条件下使用了太多的
If和then? -
我认为您应该复习格式的基础知识 [请参阅我对您的问题的编辑以了解 VBA 中的常见格式标准] - 在这种情况下,它会帮助您看到每个 If 语句都依赖于之前的语句它;这将强调您不需要多次运行相同的测试。