excel中的工作表更改事件仅在我第一次打开工作簿时有效。之后对单元格的任何更改都不起作用
这只是一个测试,看看变更事件是如何工作的。 完成这项工作后,我希望能够在一个单元格中输入C、D、E、F范围内的数字。并将更改触发器自动输入到同一行的其他3个单元格中。 到目前为止,我甚至无法让下面的代码工作。它只工作一次。当我第一次在c16中放入某些内容时,它会触发消息,但如果我再次更改它。没有消息出现。多谢各位excel中的工作表更改事件仅在我第一次打开工作簿时有效。之后对单元格的任何更改都不起作用,excel,vba,Excel,Vba,这只是一个测试,看看变更事件是如何工作的。 完成这项工作后,我希望能够在一个单元格中输入C、D、E、F范围内的数字。并将更改触发器自动输入到同一行的其他3个单元格中。 到目前为止,我甚至无法让下面的代码工作。它只工作一次。当我第一次在c16中放入某些内容时,它会触发消息,但如果我再次更改它。没有消息出现。多谢各位 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False '<
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False '<--| disable events handling
On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back
Select Case Target.Address
Case "$C$16"
'Me.Unprotect
MsgBox "Test" & Target.Cells.Row
'Me.Protect
End Select
ErrorHandler:
End Sub
Private子工作表\u更改(ByVal目标作为范围)
Application.EnableEvents=False'您需要再次启用启用事件
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False '<--| disable events handling
On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back
Select Case Target.Address
Case "$C$16"
'Me.Unprotect
MsgBox "Test" & Target.Cells.Row
'Me.Protect
End Select
Application.EnableEvents = True
ErrorHandler:
End Sub
Private子工作表\u更改(ByVal目标作为范围)
Application.EnableEvents=False'您需要再次启用启用事件
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False '<--| disable events handling
On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back
Select Case Target.Address
Case "$C$16"
'Me.Unprotect
MsgBox "Test" & Target.Cells.Row
'Me.Protect
End Select
Application.EnableEvents = True
ErrorHandler:
End Sub
Private子工作表\u更改(ByVal目标作为范围)
Application.EnableEvents=False“在ErrorHandler
之后重新启用事件更安全-这样您的代码不会崩溃并关闭事件这意味着重新启用事件。你能给我举个代码的例子吗?谢谢Tim WilliamsSorry看到你在代码中添加了一些东西。非常感谢。感谢Tim WilliamsSafer在ErrorHandler
之后重新启用事件-这样您的代码不会崩溃并关闭事件这意味着重新启用事件。你能给我举个代码的例子吗?谢谢Tim WilliamsSorry看到你在代码中添加了一些东西。非常感谢。谢谢蒂姆·威廉姆斯