工作表中的Excel宏未触发。为什么?

时间:2017-05-09 15:23:28

标签: vba excel-vba excel

我试图创建一个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

有没有办法告诉它是否正在运行?

2 个答案:

答案 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