单元格E12与单元格F12合并:
我有以下代码,一切正常但是如果我通过点击“删除”键清除单元格E12的内容,单元格c39不会改变 但是,如果我使用退格+输入清除单元格e12的内容,则单元格c39会更新...
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$12" Then
Range("d28").Value = Range("e12").Value
If Range("e12") = "" Then ' update cell c39 with calculator
Range("c39") = "Do you ?"
Else
Range("c39") = "Do you " & Range("e13").Text & "?"
End If
End If
End Sub
答案 0 :(得分:0)
如果按下Delete
时选择中包含E12,则此功能将起作用。这是必要的,因为当您点击Delete
键时,Target.Address被评估为Range("E12:F12")
,但是当您在E12
中输入值时,Target.Address只是Range("E12)
。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Reset_EnableEvents
Application.EnableEvents = False
If Not Intersect(Target, Range("$E$12")) Is Nothing Then
Range("d28").Value = Range("e12").Value
If Range("e12") = "" Then ' update cell c39 with calculator
Range("c39") = "Do you ?"
Else
Range("c39") = "Do you " & Range("e13").Text & "?"
End If
End If
Reset_EnableEvents:
Application.EnableEvents = True
End Sub
如果选择了所有列E,单元格A1和E12等,也会触发此操作。这就是Intersect
操作的作用,我猜这就是你想要的。
请注意,我还添加了代码,以便在代码运行之前和之后关闭和打开EnableEvents
。这可以防止您的代码触发其他Worksheet_Change
个事件。