24

セルが変更されるたびに Excel にマクロを自動的に実行させる簡単な方法はありますか?

問題のセルはWorksheet("BigBoard").Range("D2")

私が単純な Google の調査だと思っていたことが、より複雑であることが証明されています。関連するすべてのサンプルが交差している (それらが何であれ)、色の書式設定、または無関係に見えるその他の多くのものです。

4

5 に答える 5

41

はい、これはワークシート イベントを使用して可能です。

Visual Basic Editor で、関心のあるワークシート (「BigBoard」など) を開きます。左上のツリーでワークシートの名前をダブルクリックします。モジュールに次のコードを配置します。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Me.Range("D2")) Is Nothing Then Exit Sub
        Application.EnableEvents = False 'to prevent endless loop
        On Error Goto Finalize 'to re-enable the events      
        MsgBox "You changed THE CELL!"
    End If
Finalize:        
    Application.EnableEvents = True
End Sub
于 2013-03-11T11:10:02.830 に答える
19

別のオプションは

Private Sub Worksheet_Change(ByVal Target As Range)
    IF Target.Address = "$D$2" Then
        MsgBox("Cell D2 Has Changed.")
    End If
End Sub

これは よりも少ないリソースを使用すると思いますIntersect。これは、ワークシートが大幅に変更された場合に役立ちます。

于 2013-03-11T13:12:59.683 に答える
3

交差メソッドのターゲット セルを名前テーブル配列にする方法を見つけようとして、特定のシートの任意のセルまたはセルのセットが変更されたときに何かを実行する簡単な方法を見つけました。このコードはワークシート モジュールにも配置されます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 0 Then
'mycode here
end if
end sub
于 2015-07-24T17:15:51.627 に答える