在VBA中没有发生简单的情况

在Excel中,如果一个条件匹配,我想强加一个单元格为0,但如果不匹配,则可编辑。 我的情况是,另一个单元格的值= 1.这是我最小的示例VBA行:

If Range("B4").Value = 1 Then Range("C4").Value = 0 

但即使B4设置为1,也没有任何事情发生! 这段代码中是否有缺less的东西? 谢谢!

使用要分析/更改的特定工作表来限定Range对象。 这是VBA的最佳实践,并确保代码在您需要的特定位置上执行。

例如:

 With Worksheets("Sheet1") If .Range("B4").Value = 1 Then .Range("C4").Value = 0 End With 

要么

 If Worksheets("mySheet").Range("B4").Value = 1 Then Worksheets("yourSheet").Range("C4").Value = 0 End If 

你也必须参考表格。 例如,

 If ActiveSheet.Range("B4").Value = 1 Then ActiveSheet.Range("C4").Value = 0 

要查看您所指的工作表,请尝试以下操作:

 Sub TestMe() If Range("B4").Value = 1 Then Range("C4").Value = 0 MsgBox (Range("B4").Parent.Name) End Sub