小春网

 找回密码
 注册账号
查看: 2269|回复: 46
收起左侧

[IT 交流] 这个循环怎么改

[复制链接]
发表于 2011-12-6 22:55:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

x
数 组里rcount的个数,现在这个循环,数完第一元素数之后到第二元素的时候不数原来第一个元素了,现在想改成不管是这组里第几个元素,都从该组第一个元素开始数

rcount = 0
        
    For k = St To Si
        For i = mstarting(k) To mstarting(k) + ma(k) - 1
            For j = 2 To n - Descolumncount
                For l = mstarting(k) To mstarting(k) + ma(k) - 1
                    If Cells(i, j) = Cells(l, j) Then
                        rcount = rcount + 1
                    End If
                Next l
                Cells(i, j) = rcount / ma(k)
                rcount = 0
            Next j
        Next i
    Next k

 楼主| 发表于 2011-12-6 23:02:42 | 显示全部楼层
我把某列数据分组之后,求组里相同元素的个数,然后赋值给rcount。比如说这一列 1 2 2 3 1 6 这个数据,1元算应该读出两个,而程序运行到第二个1的时候就不从第一个1开始数了。
回复

使用道具 举报

 楼主| 发表于 2011-12-6 23:07:27 | 显示全部楼层
本帖最后由 陈酿 于 2011-12-6 23:07 编辑

我把某列数据分组之后,求组里相同元素的个数,然后赋值给rcount。比如说这一列 1 2 2 3 1 6 这个数据,1应该读出两个,而程序运行到第二个1的时候就不从第一个1开始数了。
回复

使用道具 举报

 楼主| 发表于 2011-12-7 22:01:28 | 显示全部楼层
自己顶一下。。。求高手
回复

使用道具 举报

发表于 2011-12-7 22:24:59 | 显示全部楼层
迷糊帮着UP一下,有时间时准备看看
回复

使用道具 举报

 楼主| 发表于 2011-12-7 22:56:08 | 显示全部楼层
憨吃迷糊睡 发表于 2011-12-7 22:24
迷糊帮着UP一下,有时间时准备看看

十分感谢,比较着急。。。
回复

使用道具 举报

发表于 2011-12-7 23:04:35 | 显示全部楼层
假如你能把各个变量名解释一下就可以方便大家读了。st,si什么的太乱了。
又没有前后程序比较累
回复

使用道具 举报

 楼主| 发表于 2011-12-7 23:18:16 | 显示全部楼层
sundf 发表于 2011-12-7 23:04
假如你能把各个变量名解释一下就可以方便大家读了。st,si什么的太乱了。
又没有前后程序比较累 ...

明天补上
回复

使用道具 举报

 楼主| 发表于 2011-12-8 17:19:31 | 显示全部楼层
陈酿 发表于 2011-12-6 23:07
我把某列数据分组之后,求组里相同元素的个数,然后赋值给rcount。比如说这一列 1 2 2 3 1 6 这个数据,1应 ...
  1. rcount = 0

  2. For k = St To Si
  3. For i = mstarting(k) To mstarting(k) + ma(k) - 1
  4. For j = 2 To n - Descolumncount
  5. For l = mstarting(k) To mstarting(k) + ma(k) - 1
  6. If Cells(i, j) = Cells(l, j) Then
  7. rcount = rcount + 1
  8. End If
  9. Next l
  10. Cells(i, j) = rcount / ma(k)
  11. rcount = 0
  12. Next j
  13. Next i
  14. Next k
  15. 我把n列数据根据Descolumncount开始到n的数据大小的分组。(对程序没有太大影响)
  16. 第一组是St,最后一组是Si
  17. mstarting(k)是每一组的第一个元素,是每组的数据的个数。
  18. 比如说某一列的一组数据如下
  19. 2 3 2 1 1 3 1 1 3
  20. 那么 这组数据各自的rcount 应该是
  21. 2 3 2 4 4 3 4 4 3
  22. 因为这组数据中2的个数是2 3的个数是3 1的个数是4。
  23. 现在的程序写成了
  24. 2 3 1 4 3 2 2 1 1
  25. 第一次数晚第一次之后,就不再数了。比如说3 ,总个三个,应该是三个3,但是求第6个数据
  26. 的rcount的时候,就不数前边数过的了,变成2。现在想改这个程序。
复制代码

回复

使用道具 举报

发表于 2011-12-9 13:37:19 | 显示全部楼层
你自己带入2组数 就知道了
还是没看懂你的解释
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 快速回复 返回顶部 返回列表