有没有一种简单的方法可以让Excel在单元格发生变化时自动执行宏?
有问题的单元应该在Worksheet("BigBoard").Range("D2")
中
我认为一个简单的Google查询被证明是更复杂的--每个样本都涉及交叉点(不管是什么),或者颜色格式,或者任何其他看起来不相关的东西。
发布于 2013-03-11 19:10:03
是的,这可以通过使用工作表事件来实现:
在Visual Basic编辑器中,打开您感兴趣的工作表(即"BigBoard"),双击左上角树中的工作表名称。将以下代码放入模块中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("D2")) Is Nothing Then Exit Sub
Application.EnableEvents = False 'to prevent endless loop
On Error Goto Finalize 'to re-enable the events
MsgBox "You changed THE CELL!"
End If
Finalize:
Application.EnableEvents = True
End Sub
发布于 2013-03-11 21:13:00
另一种选择是
Private Sub Worksheet_Change(ByVal Target As Range)
IF Target.Address = "$D$2" Then
MsgBox("Cell D2 Has Changed.")
End If
End Sub
我相信这比Intersect
使用的资源更少,如果你的工作表变化很大,这将会很有帮助。
发布于 2015-07-25 01:15:52
在尝试找到一种方法来使intersect方法的目标单元格成为名称表数组时,我偶然发现了一种简单的方法,可以在特定工作表上的任何单元格或单元格集合发生变化时运行某些内容。此代码也放在工作表模块中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 0 Then
'mycode here
end if
end sub
https://stackoverflow.com/questions/15337008
复制相似问题