| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:VB嵌套循环
取消只看楼主 加入收藏
芝诺
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-12-19
结帖率:100%
收藏
 问题点数:0 回复次数:2 
VB嵌套循环
Dim q As Integer
Dim q1 As Integer
Dim q2 As Integer
Dim q3 As Integer
For q = 1 To MSFlexGrid3.Rows - 1
  For q1 = 1 To MSFlexGrid3.Rows - 1
     For q2 = 1 To MSFlexGrid3.Rows - 1
If MSFlexGrid3.TextMatrix(q, 0) = MSFlexGrid3.TextMatrix(1, 0) Then
          MSFlexGrid2.TextMatrix(1, 0) = MSFlexGrid3.TextMatrix(1, 0)
             If MSFlexGrid3.TextMatrix(q, 1) = MSFlexGrid3.TextMatrix(1, 1) Then
                MSFlexGrid2.TextMatrix(1, 1) = MSFlexGrid3.TextMatrix(1, 1)
                MSFlexGrid2.TextMatrix(1, 2) = Str(Val(MSFlexGrid3.TextMatrix(1, 2)) + Val(MSFlexGrid3.TextMatrix(q, 2)))
                MSFlexGrid2.TextMatrix(1, 3) = Str(Val(MSFlexGrid3.TextMatrix(1, 3)) + Val(MSFlexGrid3.TextMatrix(q, 3)))
                MSFlexGrid2.TextMatrix(1, 4) = Str(Val(MSFlexGrid3.TextMatrix(1, 4)) + Val(MSFlexGrid3.TextMatrix(q, 4))) + "+" + Str(Val(MSFlexGrid3.TextMatrix(1, 5)) + Val(MSFlexGrid3.TextMatrix(q, 5))) + "h"
             Else
                ' MSFlexGrid2.TextMatrix(1 + q1, 1) = MSFlexGrid3.TextMatrix(q, 1)
                ' MSFlexGrid2.TextMatrix(1+q1, 2) = Str(Val(MSFlexGrid3.TextMatrix(q, 2)) + Val(MSFlexGrid3.TextMatrix(q3, 2)))
                ' MSFlexGrid2.TextMatrix(1+q1, 3) = Str(Val(MSFlexGrid3.TextMatrix(q, 3)) + Val(MSFlexGrid3.TextMatrix(q3, 3)))
                ' MSFlexGrid2.TextMatrix(1+q1, 4) = Str(Val(MSFlexGrid3.TextMatrix(q, 4)) + Val(MSFlexGrid3.TextMatrix(q3, 4))) + "+" + Str(Val(MSFlexGrid3.TextMatrix(q, 5)) + Val(MSFlexGrid3.TextMatrix(q3, 5))) + "h"
              End If
End If
        Next q2
      Next q1
    Next q
判断表格3(MSFlexGrid3)
若第一列内容相同
    判断第二列
       若第二列想同  则累计3 4 5列
       若第二列不相同  则依旧判断第二列余下的行数  相同则累加  不相同则另起一行
若第一列不相同 则另起一行  又重新开始判断
程序循环比较差,求大神指教!!!
2014-12-24 10:17
芝诺
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-12-19
收藏
得分:0 
Dim q As Integer
For q = 2 To MSFlexGrid3.Rows - 1
If MSFlexGrid3.TextMatrix(q, 0) = MSFlexGrid3.TextMatrix(1, 0) Then
   MSFlexGrid2.TextMatrix(1, 0) = MSFlexGrid3.TextMatrix(1, 0)
   If MSFlexGrid3.TextMatrix(q, 1) = MSFlexGrid3.TextMatrix(1, 1) Then
     MSFlexGrid2.TextMatrix(1, 1) = MSFlexGrid3.TextMatrix(1, 1)
     MSFlexGrid2.TextMatrix(1, 2) = Str(Val(MSFlexGrid3.TextMatrix(1, 2)) + Val(MSFlexGrid3.TextMatrix(q, 2)))
     MSFlexGrid2.TextMatrix(1, 3) = Str(Val(MSFlexGrid3.TextMatrix(1, 3)) + Val(MSFlexGrid3.TextMatrix(q, 3)))
     MSFlexGrid2.TextMatrix(1, 4) = Str(Val(MSFlexGrid3.TextMatrix(1, 4)) + Val(MSFlexGrid3.TextMatrix(q, 4))) + "+" + Str(Val(MSFlexGrid3.TextMatrix(1, 5)) + Val(MSFlexGrid3.TextMatrix(q, 5))) + "h"
  End If
End If
Next q
我把程序又想了想,总结两点:一,没有累计相加。二,不相同不会写循环语句
求高手指点
2014-12-24 11:29
芝诺
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2014-12-19
收藏
得分:0 
Dim q As Integer
Dim sum1, sum2, sum3, sum4 As Double
For q = 1 To MSFlexGrid3.Rows - 1
If MSFlexGrid3.TextMatrix(q, 0) = MSFlexGrid3.TextMatrix(1, 0) Then
   MSFlexGrid2.TextMatrix(1, 0) = MSFlexGrid3.TextMatrix(1, 0)
   If MSFlexGrid3.TextMatrix(q, 1) = MSFlexGrid3.TextMatrix(1, 1) Then
   MSFlexGrid2.TextMatrix(1, 1) = MSFlexGrid3.TextMatrix(1, 1)
   sum1 = sum1 + Val(MSFlexGrid3.TextMatrix(q, 2))
   sum2 = sum2 + Val(MSFlexGrid3.TextMatrix(q, 3))
   sum3 = sum3 + Val(MSFlexGrid3.TextMatrix(q, 4))
   sum4 = sum4 + Val(MSFlexGrid3.TextMatrix(q, 5))
  End If
End If
Next
MSFlexGrid2.TextMatrix(1, 2) = Str(sum1)
MSFlexGrid2.TextMatrix(1, 3) = Str(sum2)
MSFlexGrid2.TextMatrix(1, 4) = Str(sum3) + "+" + Str(sum3) + "h"
  我又把程序改了下  只剩下写不相同则加一行的循环语句了   真的是学无止境啊
  大神请指教哈
2014-12-24 11:40
快速回复:VB嵌套循环
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016296 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved