当用户未取消选择单元格时,调用工作表事件更改

时间:2017-02-15 16:59:40

标签: excel vba excel-vba worksheet-function

我有一个非常简单的Worksheet_Change事件正在运行,因此如果工作表上的任何单元格更改另一个工作表上的单元格,则更改为1.我使用该单元格作为标志来了解是否已对其进行了任何更改工作表。我有一个形状,我选择时指定了一个宏。宏检查是否已进行任何更改(如果该单元格设置为1),以及是否我的代码触发。

问题是,例如

  • cell A1包含名称Bob。
  • 用户选择单元格A1并将名称从Bob更改为Steve
  • 但不是先点击单元格,然后点击形状,直接点击形状而不取消选择单元格。

这个问题是在我的宏完成之后才会触发worksheet_change事件。因此,当宏运行时,标志设置为0,但一旦完成,标志将设置为1。

有关如何制止此事的任何想法?

Private Sub Worksheet_Change(ByVal Target As Range)
    sheets("Cond For").Range("A1").Value = 1
End Sub

Sub saveData()

if sheets("Cond For").Range("A1").Value = 1 Then
    'my code
End if

End Sub  

1 个答案:

答案 0 :(得分:2)

使用两个例程(将Sheet1.Reallysave重命名为工作表的代号和例程名称):

Sub SaveData()
Application.Ontime Now, "Sheet1.ReallySave"
End Sub

Sub ReallySave()
'Your current code
End Sub