首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MsgBox没有给出

MsgBox没有给出
EN

Stack Overflow用户
提问于 2017-06-13 07:33:53
回答 1查看 54关注 0票数 1

在“V34:V99”列中,数字1、2、3、0按零散顺序排列。如果出现2或3种情况,我想要计算出(n) (三个连续的1 к=3,不考虑零)的情况,然后是k=o。我编写了代码,但它不起作用(没有给出很多情况)。

代码语言:javascript
复制
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
3
0
1
0
3
0
0
0
3
0
1
0
1
0
0
1
3
0
1
0
0
0
0
0
0
0
0
0
0
0
0

代码语言:javascript
复制
Sub а33условие3()

    Dim k, n As Integer
    Dim parRange As Range

    Set parRange = Range("V34:V99")
    k = 0
    n = 0
    For Each Cell In parRange.Rows

        If Cell.Value = 1 Then
            k = k + 1
            If k = 3 Then
                n = n + 1
                k = o
                MsgBox n
           End If
        End If
        If Cell.Value = 2 Or 3 Then
            k = 0
        End If
    Next Cell  

End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-13 09:49:03

不能以这种方式使用Or语句。您应该使用Cell.Value = 2 Or Cell.Value = 3,您还可以为自己保存一个If语句,请参阅下面更新的代码:

代码语言:javascript
复制
Sub а33условие3()

Dim k, n As Integer
Dim parRange As Range

Set parRange = Range("V34:V99")
k = 0
n = 0
For Each Cell In parRange.Rows

    If Cell.Value = 1 Then
        k = k + 1
        If k = 3 Then
            n = n + 1
            k = o
            MsgBox n
        End If
    ElseIf Cell.Value = 2 Or Cell.Value = 3 Then
        k = 0
    End If
Next Cell  

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44515049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档