我有一个现有的宏,如果某个特定的单元格大于-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
请有人帮忙吗?
答案 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)
来执行此操作。