VBAWorkshhetの変更-特定の範囲でのみ変更を制限する

ラファエル・オシポフ

特定のワークシートで使用したいトリガーがあります-2つの特定の列のすぐ内側です。しかし、別の範囲内に値を入力すると、そのワークシートのプライベートサブがトリガーされます。E列またはH列内の値を変更するだけで機能し始めたいと思います。誰かがそれを正しく行う方法を知っていますか?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim LR As Long
Dim rng1 As Range
Dim rng2 As Range

'WE WANT TO KEEP THE TARGET COLUMNS BETWEEN 0% TO 100%
LR = Cells(Rows.Count, "A").End(xlUp).Row

Set rng1 = Intersect(Target, Range(Cells(2, "E"), Cells(LR, "E")))

On Error GoTo 1
If Target.Value < 0 Or Target.Value > 1 Then
    MsgBox "bla bla bla", vbCritical + vbMsgBoxRtlReading + vbMsgBoxRight, "error"
    Target.Value = 0
    Exit Sub
End If

On Error GoTo 1
Set rng2 = Intersect(Target, Range(Cells(2, "H"), Cells(LR, "H")))
If Target.Value < 0 Or Target.Value > 1 Then
    MsgBox "bla bla bla", vbCritical + vbMsgBoxRtlReading + vbMsgBoxRight, "error"
    Target.Value = 0
    Exit Sub
End If


1
End Sub
K.Dᴀᴠɪs

Target目的の範囲と交差するかどうかを確認する必要があります。このチェックでは、2つの列を結合します。

DisplayNameで不可解に述べられてTargetいるように、複数のセルを含めることができるため、ターゲットの各セルを個別にチェックする必要があります。または、Target常に1つのセルFor...Eachを使用することを意図している場合は、ステートメントを完全に回避して、次のチェックを使用If Target.Cells.Count > 1 Then Exit Subできます。複数のセルが変更されたときにプロシージャを実行しないようにします。

またMe.Rows("2:" & rows.count)、ヘッダーが更新されないように、別の交差ターゲットを追加しましたデータにヘッダーが含まれていない場合は、この範囲をから削除できますIntersect()

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo safeExit

    Dim rngIntersect As Range
    Set rngIntersect = Intersect(Target, Union(Me.Columns("E"), Me.Columns("H")), _
                                                        Me.Rows("2:" & Rows.Count))

    If Not rngIntersect Is Nothing Then

        Application.EnableEvents = False

        Dim cel As Range
        For Each cel In rngIntersect
            If cel.Value < 0 Or cel.Value > 1 Then
                MsgBox "bla bla bla", vbCritical + vbMsgBoxRtlReading + vbMsgBoxRight, _
                                                                                "error"
                cel.Value = 0
            End If
        Next cel

    End If

safeExit:

    Application.EnableEvents = True

End Sub

ちなみに、同じ正確な範囲を複数回使用している場合は、先に進んでその範囲を変数に設定することは悪い考えではありません。したがって、rngIntersectこのコードで2回使用しているため、Intersect()andUnion()関数を複数回呼び出す必要がありませんさらに、コード内で複数回ではなく1つの場所で範囲を更新するだけでよい場合、デバッグの問題が少なくなります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

極座標チャートの範囲/制限をオクターブ/ MATLABで変更する

分類Dev

特定の範囲でsybaseASEの結果を制限する

分類Dev

特定の範囲でのみスクロール時にdivのクラスを変更する

分類Dev

色の特定の範囲を変更する

分類Dev

ケラスの範囲で重みを制限する方法

分類Dev

ExcelVBAで値の範囲を別の値の範囲で変更する方法

分類Dev

トラック変更の列/範囲を特定する方法

分類Dev

特定のテーブルIDへの変更を制限する

分類Dev

範囲のすべてのループで範囲を変更する

分類Dev

Pythonでの反復中に範囲の値を変更する

分類Dev

Matlabで信号の範囲の値を変更する方法

分類Dev

Excel VBA範囲のサイズ変更の制限?

分類Dev

範囲制限のある店舗の集水域を特定する

分類Dev

VBAで数値の範囲を負に変更する

分類Dev

matplotlibでx軸の範囲を変更する方法

分類Dev

Pythonで色の範囲を白に変更する

分類Dev

数を特定の範囲に制限することは可能ですか

分類Dev

Matlabカラーマップ-値の範囲ではなく、1つの特定の値のみを変更するにはどうすればよいですか?

分類Dev

gitの特定の範囲の変更を削除するにはどうすればよいですか?

分類Dev

(XPATH)「祖先」の範囲を制限する

分類Dev

y軸の範囲を制限する

分類Dev

週数を特定の範囲内に制限する

分類Dev

乱数を特定の範囲に制限する

分類Dev

Excelで別の変数を使用して数式範囲を変更する

分類Dev

z3の各変数の値の範囲を制限できますか?

分類Dev

matlab で 2 つの画像を組み合わせる (contourf はプロットの範囲を変更します)

分類Dev

Apache2-特定のURLのPHPメモリ制限を変更する

分類Dev

海生まれのdistplotKDE推定でxの範囲を制限する

分類Dev

materializecssの範囲スライダーの色を変更する

Related 関連記事

  1. 1

    極座標チャートの範囲/制限をオクターブ/ MATLABで変更する

  2. 2

    特定の範囲でsybaseASEの結果を制限する

  3. 3

    特定の範囲でのみスクロール時にdivのクラスを変更する

  4. 4

    色の特定の範囲を変更する

  5. 5

    ケラスの範囲で重みを制限する方法

  6. 6

    ExcelVBAで値の範囲を別の値の範囲で変更する方法

  7. 7

    トラック変更の列/範囲を特定する方法

  8. 8

    特定のテーブルIDへの変更を制限する

  9. 9

    範囲のすべてのループで範囲を変更する

  10. 10

    Pythonでの反復中に範囲の値を変更する

  11. 11

    Matlabで信号の範囲の値を変更する方法

  12. 12

    Excel VBA範囲のサイズ変更の制限?

  13. 13

    範囲制限のある店舗の集水域を特定する

  14. 14

    VBAで数値の範囲を負に変更する

  15. 15

    matplotlibでx軸の範囲を変更する方法

  16. 16

    Pythonで色の範囲を白に変更する

  17. 17

    数を特定の範囲に制限することは可能ですか

  18. 18

    Matlabカラーマップ-値の範囲ではなく、1つの特定の値のみを変更するにはどうすればよいですか?

  19. 19

    gitの特定の範囲の変更を削除するにはどうすればよいですか?

  20. 20

    (XPATH)「祖先」の範囲を制限する

  21. 21

    y軸の範囲を制限する

  22. 22

    週数を特定の範囲内に制限する

  23. 23

    乱数を特定の範囲に制限する

  24. 24

    Excelで別の変数を使用して数式範囲を変更する

  25. 25

    z3の各変数の値の範囲を制限できますか?

  26. 26

    matlab で 2 つの画像を組み合わせる (contourf はプロットの範囲を変更します)

  27. 27

    Apache2-特定のURLのPHPメモリ制限を変更する

  28. 28

    海生まれのdistplotKDE推定でxの範囲を制限する

  29. 29

    materializecssの範囲スライダーの色を変更する

ホットタグ

アーカイブ