1

現在のコードで単一のセルの値を計算し、その値が別の値を超えた場合にモジュールを呼び出しています。

セルの複数の範囲(B5:E5、B8:M8など)をチェックし、範囲内のセルのいずれかが値を超えている場合はモジュールを呼び出すにはどうすればよいですか。

Private Sub Worksheet_Calculate()
If Range("B5") > 4 Then
Application.EnableEvents = False
Application.Run "Mail_small_Text_Outlook"
Application.EnableEvents = True
End If
End Sub
4

1 に答える 1

0

これはあなたがしようとしていることですか?

Private Sub Worksheet_Calculate()
    Dim aRng As Range, bRng As Range
    Dim aCell As Range

    Set aRng = Range("B5:E5")
    Set bRng = Range("B8:M8")

    For Each aCell In aRng
        If aCell.Value > 4 Then
            '
            Application.Run "Mail_small_Text_Outlook"
            '
            Exit Sub
        End If
    Next

    For Each aCell In bRng
        If aCell.Value > 4 Then
            '
            Application.Run "Mail_small_Text_Outlook"
            '
            Exit Sub
        End If
    Next
End Sub

またはこのようなもの?

Private Sub Worksheet_Calculate()
    Dim aRng As Range, bRng As Range
    Dim aCell As Range, uRng As Range

    Set aRng = Range("B5:E5")
    Set bRng = Range("B8:M8")
    Set uRng = Union(aRng, bRng)

    For Each aCell In uRng
        If aCell.Value > 4 Then
            '
            Application.Run "Mail_small_Text_Outlook"
            '
            Exit Sub
        End If
    Next
End Sub
于 2012-08-01T07:01:17.217 に答える