如果没有太多的范围要检查你可以添加更多的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
你是否考虑过为第二个范围添加第二个'IF'语句,因为它的工作原样? – Dave
WorksheetFunction.counta(范围(“d2:d27”),范围(“d29:d30”)) –