注册 登录
编程论坛 VB6论坛

提示下标越界

lz_xiaohai 发布于 2017-12-27 16:11, 1913 次点击
Private Sub MSHFlexGrid1_Click()
    Dim c As Integer
    Dim r As Integer
    Dim i As Integer
    r = MSHFlexGrid1.Row
    For i = 0 To MSHFlexGrid1.Cols
        c = i + 1
        Text1(i) = MSHFlexGrid1.TextMatrix(r, c)
    Next i
End Sub
text1数组是0-6,MSHFlexGrid1表格是1-7  老提示下标越界,需要显示第2-7列数据


5 回复
#2
HVB62017-12-27 16:18
回复 楼主 lz_xiaohai
试试:
Private Sub MSHFlexGrid1_Click()
    Dim c As Integer
    Dim r As Integer
    Dim i As Integer
    r = MSHFlexGrid1.Row
    For i = 0 To MSHFlexGrid1.Cols
       c = c + 1
        Text1(i) = MSHFlexGrid1.TextMatrix(r, c)
        i= i + 1
    Next i
End Sub
text1数组是0-6,MSHFlexGrid1表格是1-7  老提示下标越界,需要显示第2-7列数据
#3
wds12017-12-27 16:45
MSHFlexGrid1.Cols包含表头数值,如果有判断时需要去除。
 另外MSHFlexGrid1.Cols是总列数,0- MSHFlexGrid1.Cols,就多列了,所以越界。
 修改为For i = 0 To MSHFlexGrid1.Cols-1
#4
lz_xiaohai2017-12-27 17:02
谢谢各位的回复,理解错误。。。改了一下代码好了。
Private Sub MSHFlexGrid1_Click()
    Dim c As Integer
    Dim r As Integer
    Dim i As Integer
    r = MSHFlexGrid1.Row
    For i = 0 To MSHFlexGrid1.Cols - 2
        c = i + 1
        Text1(i) = MSHFlexGrid1.TextMatrix(r, c)
    Next i
End Sub
#5
ZHRXJR2017-12-27 17:06
    r = MSHFlexGrid1.Row
    c = 0
    For i = 1 To MSHFlexGrid1.Cols
        c = c + 1
        Text1(i - 1).Text = MSHFlexGrid1.TextMatrix(r, c)
    Next i

    r = MSHFlexGrid1.Row
    For i = 1 To MSHFlexGrid1.Cols
        Text1(i - 1).Text = MSHFlexGrid1.TextMatrix(r, i)
    Next i
#6
lz_xiaohai2017-12-28 10:14
谢谢各位的回复

[此贴子已经被作者于2017-12-28 10:27编辑过]

1