更改单元格的值以触发宏

时间:2014-09-12 21:05:37

标签: excel vba excel-vba

正如标题所示,我想要一个特定的宏(PopulateCalculatorWithWeekChosen)在用户更改'摘要'中的值时运行。工作表,单元格H10。

我找到了下面的问题和答案并尝试了但它似乎没有触发它。我是否正确理解我将代码放在下面......

Trigger event when select from dropdown

Sub PopulateCalculatorWithWeekChosen()

If Target.Address = "$H$10" Then
With Application
    .EnableEvents = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With

[PopulateCalculatorWithWeekChosen宏中的其余代码]

    With Application
    .EnableEvents = True
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
End With
End If
End Sub

......在正确的地方? 它似乎没有做任何事情。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题是您已经定义了一个宏,而您引用的问题/答案是使用Worksheet_Change事件。在您的VBA代码中,您应该具有包含Change事件的Worksheet对象。事件只是在特定事件发生时触发的函数。 在这种情况下,只要修改工作表,就会触发函数Worksheet_Change。你应该有这样的东西:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$H$10" Then

      With Application
        .EnableEvents = False
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
      End With

      With Application
        .EnableEvents = True
        .ScreenUpdating = True
        .Calculation = xlCalculationAutomatic
      End With

    End If

End Sub

当您修改工作表时,Excel将自动调用此函数,并通过在Target参数中提供该信息来告知您修改了哪些单元格。