更改单元格值时自动运行Excel VBA(通过计算)

时间:2015-05-26 10:35:34

标签: excel vba excel-vba

我有一个现有的宏,如果某个特定的单元格大于-0.03,它会执行Excel工作表的截屏。目前,该单元格是基于来自外部源的实时数据的公式。我可以手动运行此宏,但我希望它能够连续运行,即每次单元格大于-0.03时自动截取工作表的屏幕截图。

到目前为止,这是我的代码;

Private Sub Worksheet_Calculate()

If range("d81")>-0.03 Then
    Application.EnableEvents = False
    Call ScreenCapture
    Application.EnableEvents = True
End If

Application.ScreenUpdating = False
Application.DisplayAlerts = False

End Sub

请有人帮忙吗?

2 个答案:

答案 0 :(得分:0)

尝试在工作表中使用它

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If range("d81")>-0.03 Then
        With Application
            .EnableEvents = False
            Call ScreenCapture
            .EnableEvents = True
           .ScreenUpdating = False
           .DisplayAlerts=True
        End With
    End If

End Sub

每次工作表发生更改时,都会运行宏。

但是如何生成-0.03单元格。如果是用户输入,则单元格被停用(单击,离开等)

如果您希望在通过用户输入或vba更改值时使用Worksheet_Change事件(请将上面的Worksheet_SelectionChange替换为)

然后,如果它是计算单元格,则使用Worksheet_Calculate()事件(替换Worksheet_SelectionChange(ByVal Target As Range))在值通过计算更改时运行宏。

答案 1 :(得分:0)

您可以使用包含要重新呈现的单元格的工作表上的Worksheet_Change(ByVal Target As Range)来执行此操作。