Foxtable(狐表)用户栏目专家坐堂 → 下列代码错哪了


  共有3058人关注过本帖树形打印复制链接

主题:下列代码错哪了

帅哥哟,离线,有人找我吗?
lpxjw_zyl
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:376 积分:4189 威望:0 精华:0 注册:2008/9/1 14:18:00
下列代码错哪了  发帖心情 Post By:2014/5/23 3:03:00 [只看该作者]

With DataTables("表Ⅰ")
    Dim tj1 As Double = Val(.datarows(14)("B6")) + Val(.datarows(14)("B7"))
    If RibbonTabs("全面薄改")("电子计算")("学校类别").text = "教学点" Then
        Output.Show(tj1)
        If tj1 <= 4 Then
            .datarows(0)("B4") = 1.9
        ElseIf tj1 >= 36 Then
            .datarows(0)("B4") = 14
        Else
            For i As Integer = 0 To Tables("小学校舍标准").Rows.count -1
                If tj1 > Tables("小学校舍标准").Rows(i)("生均用地面积") AndAlso tj1 <= Tables("小学校舍标准").Rows(i+1)("生均用地面积") Then
                    .datarows(0)("B4") =  Tables("小学校舍标准").Rows(i+1)("生均用地面积")
                    Exit For
                End If
            Next
        End If
    End If
End With

 回到顶部
帅哥哟,离线,有人找我吗?
lpxjw_zyl
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:376 积分:4189 威望:0 精华:0 注册:2008/9/1 14:18:00
  发帖心情 Post By:2014/5/23 3:03:00 [只看该作者]

提示超出索引

 


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/23 8:32:00 [只看该作者]

多次用索引 引用行数,但是一律不判断.那当然会报错.

如果表中没行怎么办? 表中行数小于14行呢?


还有遍历里面的.datarows(0)("B4") =  Tables("小学校舍标准").Rows(i+1)("生均用地面积")
如果遍历到最后一行你再+1 这不是超标了吗?

所以要先判断 if DataTables("表Ⅰ").datarows.count > 0 then
再执行其他.
获取14行时要先判断 if DataTables("表Ⅰ").datarows.count >= 0 then

最重要的在遍历里面 

if Tables("小学校舍标准").Rows.count > (i-1) then
.datarows(0)("B4") =  Tables("小学校舍标准").Rows(i+1)("生均用地面积")



 回到顶部