2017-02-15 5 views
1

非常に単純なWorksheet_Changeイベントが実行されているため、ワークシート上のセルが変更されたときに別のシートのセルが1に変わります。ワークシートに何らかの変更が加えられた場合。選択したときにマクロを割り当てた形があります。マクロは、何らかの変更が加えられているかどうか(そのセルが1に設定されているかどうか)、およびコードが発生したかどうかを確認します。ユーザーがセルの選択を解除しないときにワークシートのイベントが呼び出される

問題があればある例えば

  • セルA1は名前ボブが含まれています。
  • ユーザーが細胞の外をクリックし、その後、彼らは直接セルの選択を解除せずに形状を打つ形状をクリックし、その後の代わりに、最初のセルA1を選択し、ボブからのスティーブ
  • に名前を変更し
  • をけど。

この問題は、マクロが完了するまで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 

答えて

2

そうのような2つのルーチン(あなたのシートのコードネームとルーチン名にSheet1.Reallysaveの名前を変更)用途:

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

Sub ReallySave() 
'Your current code 
End Sub 
+0

ありがとうございます!前にOnTime関数について聞いたことはありません。 –

関連する問題