首页 > 解决方案 > 如何使用案例循环遍历范围

问题描述

我一直在尝试通过 Range 使用 Case 来提示消息框。有人建议我使用 For 循环来遍历一个以上的范围。

现在,每当我这样做时,它都会提供“编译错误:下一个没有 For”

我知道每个 for 语句都需要一个我试图包含的下一个,但每次我都会遇到额外的错误。

我该如何解决这个问题?

Dim myRange As Range

For Each myRange In Range("I6,I1000")

Select Case myRange.Value
    Case "7 - engaged"
    VBA.Interaction.MsgBox "Client status selected as engaged. Confirm to post to tank", 1, "Status Change"


Next myRange

End Select

我正在写这篇文章,所以每当单元格更改为“7 - Engaged”时,都会触发消息 ox(稍后将触发另一个宏)。

标签: excelvba

解决方案


这是一个订购问题。您需要Select CaseNext

Dim myRange As Range

For Each myRange In Activesheet.Range("I6:I1000") '<== better to use actual sheet name in reference

    Select Case myRange.Value
        Case "7 - engaged"
        VBA.Interaction.MsgBox "Client status selected as engaged. Confirm to post to tank", 1, "Status Change"

    End Select
Next myRange

您的描述暗示您可能想查看工作表更改事件。另请参阅。请注意,这不适用于通过计算更改的单元格。


推荐阅读