4

最初のドロップダウンが変更された場合に無効なデータが発生する可能性がある多くの依存ドロップダウンを含むワークシートがあります。指定された範囲 (D8:T800) 内のセルの変更が検出されるたびに、「無効なデータを丸で囲む」コマンドを自動的に実行する単純な自動マクロが必要です。

かなり簡単に聞こえますが、これを行う方法がわかりません。

質問 - このマクロはセルが修正されるたびに実行されるため、このマクロはワークシートの速度を低下させますか?

編集:また:これは遅いかもしれないので、選択した範囲でこのコマンドを実行する方法はありますか?

あなたの考えに感謝します。

4

2 に答える 2

1

このコードをワークシート内に配置してみてください:

Private Sub Worksheet_Change(ByVal Target As Range)

' Check target range has changed
If (Not Intersect(Target, Range("D8:T800")) Is Nothing) Then
    ' Prevent recusrive looping
    Application.EnableEvents = False

    ' Refresh validation circles
    Target.Worksheet.CircleInvalid

    Application.EnableEvents = True
End If

End Sub

指定された範囲外からの計算により、これらのセルの値が変更された場合、これは機能しないことに注意してください。

また、CircleInvalid メソッドはワークシート全体に適用されます。

ターゲットが検証された場合、条件付きでコードを編集して「何かを行う」ことを試みることができます。これにより、無効なセルの周囲に赤い円が表示される代わりに、その形式が変更されます。

**PSEUDO-CODE**
For each cell in Target.Range
    cell.colour = bright red
Next cell
于 2012-11-02T12:18:46.063 に答える