2017-01-05 5 views
0

私の列のセルの値が変更されるたびにメッセージボックスを表示したいと思います。セルが変更されたときにvbaにメッセージボックスが表示されますか?

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target.Cells.Count < 3 And Target.Column = 13 Then 
    If Not Intersect(Target, Target.Worksheet.Range("M:M")) Is Nothing Then 

    MsgBox "hEY" 
End If 
    End If 
End Sub 

理想的には私が試してみて、これは、ユーザーが他のセルに入力したときなど、他のすべてのための私のspreadhseetを遅くすると思われるので、ワークシート変更イベントを避けるためにしたいと思います。カーソルは、vbaがバックグラウンドで作業しようとしているかのように、ローディングカーソルを表示します。

方法はありますか?

+1

あなたは以前の記事でここに来た前の答えにフィードバックを与えるために時間を見つけて、私はあなたがそれらのいずれかを受け入れるか、または/および「ANSWER」 –

+0

としてマークされていなかったことがわかり?以下の回答に対するフィードバック –

答えて

0

あなたは、あなたのコードを簡素化する変更された細胞は、M列にある場合だけ確認してから、これらの2つのIf sは、コードを満たさない場合、細胞の数が3未満

であることを確認できました何もしません、ただEnd Subに直接行きます。

Private Sub Worksheet_Change(ByVal Target As Range) 

If Not Intersect(Target, Range("M:M")) Is Nothing Then 
    If Target.Cells.Count < 3 Then MsgBox "Hey" 
End If 

End Sub 
0

この場合、イベントにコードを入れずにMessageBoxを表示することはできません。あなたができる最善の方法は、最初に失敗する可能性のある条件をテストすることです。そのため、コードテストはイベント内で条件がより少なくなり、より速く実行されます。

私の経験上、あなたが述べた理由のため、この種のコードは避けるべきです。私は常にワークシートを無料で設定し、エラーが見つかったユーザーを指摘する「検証」ボタンを作成します(コードで何を達成したいのか分かりません)。

関連する問題