我正在尝试运行一些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
答案 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