以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 这句代码如何能做到不出现以下的那个提示? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=10131)
|
-- 作者:blackzhu
-- 发布时间: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
-- 发布时间:2011/5/22 20:32:00
--
C版你在,帮我看看这个.
|
-- 作者:blackzhu
-- 发布时间:2011/5/22 20:48:00
--
两位老大都在不帮我看看.
|
-- 作者:狐狸爸爸
-- 发布时间:2011/5/22 20:55:00
--
问题出在红色的位置,难道你有1000行,就有1000列?
.Rows(i,i)("第一列") *.Rows(i+1)("第一列")
|
-- 作者: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
当时这个代码出现提示的.
|
-- 作者:blackzhu
-- 发布时间:2011/5/22 21:02:00
--
其实问题是上下行相加到本表内的另外一列的,结果列的行数比参与计算的行少了一行.所以一直出现这个提示.
|
-- 作者:狐狸爸爸
-- 发布时间: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
-- 发布时间:2011/5/22 21:19:00
--
我再研究,可以了.
|
-- 作者:blackzhu
-- 发布时间:2011/5/22 21:26:00
--
我就没有试试-2,当时我想这个应该是0到-1为最后一行.就没有想到因为I+1,这个+1和+1正好抵消,那么最后一行的-1,还是没有,就应该给他个-1,所以应该再多加上一个-1,就是应该是-2..明白了,其实很简单,对这个我有加深了了解.谢谢!
|