我试图创建一个VBA脚本,当一个单元格范围内的值(在本例中为E7:E10)被选中时(从下拉列表中)触发。但是,Excel似乎没有给出宏观触发的任何指示,我觉得这是由于标题行。这是标题行代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("E7:E10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
有没有办法告诉它是否正在运行?
答案 0 :(得分:2)
有没有办法告诉它是否正在运行?
在程序中放置一个断点或MsgBox
调用:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address
End If
如果没有弹出消息框,则事件不会触发。检查Application.EnableEvents
的值,并确保启用宏。
请注意,Change
事件不会因重新计算而触发。
答案 1 :(得分:1)
尝试以下代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "dropdown cell location" Then
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
End If
'your macro
If Target.Address = "dropdown cell location" Then
With Application
.Calculation =xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End If
End Sub