如何使用Case遍历范围

时间:2019-03-30 17:55:51

标签: excel vba

我一直在尝试通过范围使用Case来提示消息框。建议我使用For Loop遍历多个范围。

现在,只要执行此操作,它就会提供“编译错误:下一个没有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-参与”时,就会触发ox消息(稍后将触发另一个宏)。

1 个答案:

答案 0 :(得分:0)

这是一个订购问题。您需要在Select Case之前关闭Next

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

您的描述意味着您可能希望查看worksheet change event。另请参见this。请注意,这不适用于通过计算更改的单元格。