あなたがチェックしたい、あまりにも多くの範囲がない場合は、よりIF
のステートメントを追加することができます。
Public Sub end_calculation1()
If WorksheetFunction.CountA(Range("D22:D27")) < 6 Then
MsgBox "Please fill in all the answers in range D22:D27"
ElseIf WorksheetFunction.CountA(Range("E22:E27")) < 6 Then
MsgBox "Please fill in all the answers in range E22:E27"
End If
End Sub
複数の範囲について、あなたは範囲をループするために手順を使用してチェックする機能を呼び出すことができます各範囲:あなたは、単一の行のすべての範囲を確認することができ、コメント
に応じて
Public Sub end_calculation_update()
Dim rngs As Variant, i As Byte
rngs = Array("D22:D27", "E22:E27", "F22:F27")
For i = 0 To UBound(rngs)
If (emptyRange(CStr(rngs(i)))) Then
MsgBox "Please fill in all the answers in range " & rngs(i)
Exit Sub
End If
Next i
End Sub
Private Function emptyRange(rngAddress As String) As Boolean
emptyRange = WorksheetFunction.CountA(Range(rngAddress)) < 6
End Function
UPDATE:
Public Sub end_calculation_revised()
Dim rng As Range
Set rng = Range("D22:D27,D29:E30")
If (WorksheetFunction.CountA(rng) < rng.Cells.Count) Then
MsgBox "Please fill in all the answers in range " & rng.Address
End If
End Sub
2番目の「IF」文を2番目の範囲に追加することを検討しましたか?それはそのまま動作しているからですか? – Dave
WorksheetFunction.counta(範囲( "d2:d27")、範囲( "d29:d30")) –