代码在Excel中更改单元格值时自动运行

时间:2014-03-18 14:33:24

标签: excel vba cell

我正在尝试运行一些VBA脚本,以便在我自动更改单元格值时自动运行。我在工作表中有脚本,而不是模块。由于某种原因,它不起作用,我无法弄清楚原因。任何人都知道为什么?非常感谢!

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = Range("B1") Then


r1 = Range("B1").Value
Range("A1").Value = 2 * r1

End If

End Sub

2 个答案:

答案 0 :(得分:0)

通常,您不能以这种方式比较对象引用,因为无法保证您要比较的两个范围指的是同一个Range对象。

此代码是一个可行的替代方案:

If Target.Address = "$B$1" Then 
    'Continue from here

答案 1 :(得分:0)

考虑:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B1" Then
        Application.EnableEvents = False
        Range("A1").Value = 2 * Range("B1").Value
        Application.EnableEvents = True
    End If
End Sub

修改#1:

如果此方法无效,但未生成错误消息,则可能需要重新启用事件。把它放在标准模块中并运行它:

Sub EventsOn()
    Application.EnableEvents = True
End Sub