Foxtable(狐表)用户栏目专家坐堂 → 这句代码如何能做到不出现以下的那个提示?


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

主题:这句代码如何能做到不出现以下的那个提示?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
这句代码如何能做到不出现以下的那个提示?  发帖心情 Post By:2011/5/22 19:03:00 [只看该作者]

Select Case e.DataCol.Name
    Case "第一列"
        With Tables("表A")
            For i As Integer = 0 To Tables("表A").Count -1
                .Rows(i)("第九列")= .Rows(i,i)("第一列") *.Rows(i+1)("第一列")  '选定行相乘
            Next
        End With
End Select

 

 

 



此主题相关图片如下:提示.jpg
按此在新窗口浏览图片

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/22 20:32:00 [只看该作者]

C版你在,帮我看看这个.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/22 20:48:00 [只看该作者]

两位老大都在不帮我看看.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/22 20:55:00 [只看该作者]

问题出在红色的位置,难道你有1000行,就有1000列?

 

.Rows(i,i)("第一列") *.Rows(i+1)("第一列")


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/22 21:00:00 [只看该作者]

不对,这个是我测试不过来,当时加了这个看看的.

 

Select Case e.DataCol.Name
    Case "第一列"
        With Tables("表A")
            For i As Integer = 0 To Tables("表A").Count -1
                .Rows(i)("第九列")= .Rows(i)("第一列") *.Rows(i+1)("第一列")  '选定行相乘
            Next
        End With
End Select

 

当时这个代码出现提示的.

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/22 21:02:00 [只看该作者]

其实问题是上下行相加到本表内的另外一列的,结果列的行数比参与计算的行少了一行.所以一直出现这个提示.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/22 21:17:00 [只看该作者]

以下是引用blackzhu在2011-5-22 21:00:00的发言:

不对,这个是我测试不过来,当时加了这个看看的.

 

Select Case e.DataCol.Name
    Case "第一列"
        With Tables("表A")
            For i As Integer = 0 To Tables("表A").Count -1
                .Rows(i)("第九列")= .Rows(i)("第一列") *.Rows(i+1)("第一列")  '选定行相乘
            Next
        End With
End Select

 

当时这个代码出现提示的.

 

 

这也是有严重错误的,当i循环到Tables("表A").Count -1时,i+1等于Tables("表A").Count ,那么:

.Rows(i+1)("第一列")

肯定会出错,因为根本就不存在编号为Tables("表A").Count的行,行的编号最大为Tables("表A").Count -1

 

你的循环代码应该改为:

 For i As Integer = 0 To Tables("表A").Count -2


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/22 21:19:00 [只看该作者]

我再研究,可以了.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/22 21:26:00 [只看该作者]

      我就没有试试-2,当时我想这个应该是0到-1为最后一行.就没有想到因为I+1,这个+1和+1正好抵消,那么最后一行的-1,还是没有,就应该给他个-1,所以应该再多加上一个-1,就是应该是-2..明白了,其实很简单,对这个我有加深了了解.谢谢!

 回到顶部