1

ここに画像の説明を入力してください

上記のように2つの列があります。ユーザーが行を入力し、列の給与の合計が1000000を超えた場合に、アラートボックスを表示するにはどうすればよいですか?

4

3 に答える 3

2

VBA に縛られていない場合は、Data Validation. Excel 2007 で、給与の範囲 (列としましょうB)Dataを選択し、リボンの をクリックして、 を選択しますData Validation。そこから、次の式を入力します。

=B:B<1000000

列の合計が 1000000 を超える値を入力すると、常にエラーがスローされます。必要に応じて、エラーをカスタマイズすることもできます。

ここに画像の説明を入力

于 2013-01-07T06:56:11.133 に答える
1

これは、単一のセルに対して行う方法です。このコードは、モジュールではなく、その特定のシートの vba ページにある必要があります。範囲に合わせて動作するように適応できると確信しています。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Range("A1"), Target) Is Nothing Then 
        If Range("A1").Value > 1000000
            MsgBox "A1 is greater than 1000000, ALERT! ALERT! ALERT!"
        End If 
    End If 
End Sub 

ただし、条件付き書式設定や @RocketDonkey のようなデータ検証などの非 VBA ソリューションは、より良いアイデアです。

于 2013-01-07T06:55:36.793 に答える
1

「給与」が列 B にあるとします。

Private Sub Worksheet_Change(ByVal Target As Range)
Total = Application.WorksheetFunction.Sum(Columns("B:B"))
If Total >= 1000000 Then
MsgBox "My message", vbCritical, "Error"
End If
End Sub
于 2013-01-07T07:34:09.003 に答える