如何在更改事件中放置多个范围

时间:2017-04-13 15:15:29

标签: vba excel-vba excel

我需要在更改事件触发宏之前检查几个单元格。

这是代码

Private Sub CBbox_Change()

If Range("E13:E20") = vbNullString Then

Call Macro

End if

End Sub

问题是我只能放一个这样的范围。

If Range("E13") = vbNullString Then

3 个答案:

答案 0 :(得分:0)

你想要这样的东西吗?

Private Sub CBbox_Change()
   Status = False
   For Each Cell In Range("E13:E20")
       If Cell <> vbNullString Then
           Status = False
           Exit For
       End If
       Status = True
   Next Cell
   If Status Then
       Call Macro
   End If
End Sub

答案 1 :(得分:0)

另一种方法

Private Sub CBbox_Change()

Dim r As Range

Set r = Range("E13:E20")

If WorksheetFunction.CountBlank(r) = r.Count Then
    Call Macro
End If

End Sub

答案 2 :(得分:0)

查看WorksheetFunction.CountA功能,无需使用For循环。

您可以阅读有关MSDN

的更多信息
Private Sub CBbox_Change()

If WorksheetFunction.CountA(Range("E13:E20")) = 0 Then
    Call Macro
End If

End Sub