| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 38 人关注过本帖
标题:crr(m, 1) = arr(i + brr(j, 1) - 1, 1)下标越界
取消只看楼主 加入收藏
vbcaonia
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-5-4
结帖率:96.67%
收藏
 问题点数:20 回复次数:0 
crr(m, 1) = arr(i + brr(j, 1) - 1, 1)下标越界
下面这个程序是:

 vb6.0上控件VSFlexGrid
1、Form1.VSFlexGrid1.TextMatrix(1, 5)开始的第5列填有数据且每9行为一组,Form1.VSFlexGrid1.TextMatrix(1, 6)开始的第6列填有数据其数值为第5列数据每9行的编号。
2、首先提取第5列第1组数据然后第2组、第3组...各组数据依次提取其结果填在Form1.VSFlexGrid1.TextMatrix(1, 7)第7列。
例如:第5列第1组9行从上到下为9 10 15 16 17 88 99 145 187

         第6列从上到下为1 3 5, 意思就是提取每组位置的第1 第3 第5个数据,上面提取为 9 10 17,其中9填在Form1.VSFlexGrid1.TextMatrix(1, 7),10填在Form1.VSFlexGrid1.TextMatrix(2, 7),17填在Form1.VSFlexGrid1.TextMatrix(3, 7)


提示crr(m, 1) = arr(i + brr(j, 1) - 1, 1)下标越界,帮我看看并修改,谢谢!

Private Sub Command16_Click()

  
Dim arr, brr
Dim i As Long, j As Long, k As Long
Dim f As Long, h As Long, m As Long, n As Long
   ReDim arr(1 To 1000000, 1 To 1)
   ReDim brr(1 To 1000, 1 To 1)
     '第5列数据
     n = 1
    For h = 1 To VSFlexGrid1.Rows - 1  '数据
   ' For h = 5 To 20004
   If Form1.VSFlexGrid1.TextMatrix(h, 5) <> "" Then
        arr(n, 1) = Form1.VSFlexGrid1.TextMatrix(h, 5) ' DP列
        n = n + 1
        Else
        Exit For
        End If
    Next
     '第6列矩阵编号2
        f = 1
    For h = 1 To VSFlexGrid1.Rows - 1  '数据
   If Form1.VSFlexGrid1.TextMatrix(h, 6) <> "" Then
       brr(f, 1) = Form1.VSFlexGrid1.TextMatrix(h, 6) ' DP列 ' DP列
        f = f + 1
        Else
        Exit For
        End If
    Next
        
        
        
        ReDim crr(1 To 100000, 1 To 1)
        'm = 0
        For i = 1 To Int(UBound(arr) / 9) * 9 Step 9
            For j = 1 To UBound(brr)
                m = m + 1
                If i + brr(j, 1) - 1 < UBound(arr) Then
                    crr(m, 1) = arr(i + brr(j, 1) - 1, 1)
                    
                End If
            Next
        Next
        
 For m = 1 To UBound(crr)
    ' 输出到第7列
    VSFlexGrid1.TextMatrix(m, 7) = crr(m, 1)
Next m

End Sub
搜索更多相关主题的帖子: 数据 Long For Next If 
昨天 13:15
快速回复:crr(m, 1) = arr(i + brr(j, 1) - 1, 1)下标越界
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.143836 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved