excel VBA和宏写代码实现数据读取和计算。

具体私密!第一个图是中间2个0,不计数。问题补充下,往大神能解决,现在的问题是在excel的M列中由1和0组成,当出现连续的1的时候从最后一个开始记起,到下一个1出现,记... 具体私密!
第一个图是中间2个0,不计数。

问题补充下,往大神能解决,现在的问题是在excel的M列中由1和0组成,当出现连续的1的时候从最后一个开始记起,到下一个1出现,记下两个1之间0的个数n,如果n小于6的话不做记载,也就是中间的0的个数小于6的话就不算,大于6的话开始判断,当n大于360的时候,记为1,当m小于360大于6的时候,记为0,一直运行完到这一行数据,求出现n大于360的次数。也就是记了多少个1,然后把这一列出现1的单元格用填充为别的颜色,具体什么颜色无所谓。
展开
 我来答
zzllrr小乐
高粉答主

2014-11-11 · 小乐图客,小乐数学,小乐阅读等软件作者
zzllrr小乐
采纳数:20147 获赞数:78766

向TA提问 私信TA
展开全部

其实就是两个操作。

1、统计M列,区域:连续360个以上的单元格都为0,这样的区域总共有多少个?

2、将M列所有数字为1的单元格,填充色改为其它颜色(例如红色)。

相应完整VBA代码如下:


Sub count01_by_zzllrr()
    Dim n, n0, n1, i, v
    n = 0
    n0 = 0
    n1 = False
    If Range("M1") = 0 Then
        n0 = 1
    End If
    
    For i = 2 To Columns("M:M").Find("*", , , , 1, 2).Row
        v = Range("M" & i)
        If v = 1 Then
            Range("M" & i).Interior.Color = 255
            If n0 > 360 Then
                n = n + 1
            End If
            n0 = 0
            
            If Not n1 Then
                n1 = True
            End If
            
        Else
            
            If n1 Then
                n0 = n0 + 1
            End If
            
        End If
    
    Next i
    Range("N1") =n
    MsgBox ("总共" & n & ",且已填写在单元格N1")
End Sub
追问

貌似有点问题,我不知道是我的问题还是你的代码问题,我是先读出txt文件的数据,然后得到这些1,0.然后运行了出现以下错误,我把i改为了m,因为我上面代码用过了。m = 3,数据从第三行开始的。

这张图是我点击我自己设置的读取数据按钮,然后运行就出现这错误。

这个是我点运行提示的错误,搞的有点糊涂,

mfk1288
2014-11-09 · TA获得超过201个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:170万
展开全部
把表发我邮箱,举例说清楚目的与要求,看能否解决你的问题。mfk1288@126.com
追问
上面的问题能解决吗大神。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木匠
2014-11-09 · TA获得超过295个赞
知道小有建树答主
回答量:127
采纳率:50%
帮助的人:70.3万
展开全部
愿闻其详。wmoto@126.com
追问
上面的问题能解决吗大神。求给力。
追答
实现起来应该不难。只是我得详细了解你的过程。还有你说的txt文件里的数据是填到这里的M列中吗?你图中的9与11要填到什么地方啊?

我把你发给我的文件改了一小下下,你再试试,已经发回到你的邮箱中了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式