以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教个问题,谢谢  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125015)

--  作者:firecho
--  发布时间:2018/9/18 11:32:00
--  请教个问题,谢谢
我在全局定义了一个集合变量fp,里面存储的内容对应着开具发票金额,最终需要和对应的付款金额比较并根据结果改变单元格字体颜色。

在drawcell时间中的代码如下:

If e.Col.name = "付款金额"  Then
If e.Row(e.Col.name)> fp(e.Row.index) Then
  e.style = "RED"
  Else
  e.style = "GREEN"
End If
End If
执行代码后没有什么问题,但是随着表内数据行的增加会随机出现(并非每次增加行都会出现)错误!

错误所在事件:表,拨款_Table2,DrawCell
详细错误信息:
调用的目标发生了异常。
索引超出范围。必须为非负值并小于集合大小。
参数名: index

请大神们给分析下具体原因和如何改正,谢谢!

--  作者:有点甜
--  发布时间:2018/9/18 11:37:00
--  
If e.Col.name = "付款金额"  Then
    If fp.count > e.Row.Index Then
        If e.Row(e.Col.name)> fp(e.Row.index) Then
            e.style = "RED"
        Else
            e.style = "GREEN"
        End If
    End If
End If

--  作者:firecho
--  发布时间:2018/9/18 11:51:00
--  
谢谢,可还是没明白为什么,e.row.index会超过集合数量吗?
--  作者:有点甜
--  发布时间:2018/9/18 11:57:00
--  
以下是引用firecho在2018/9/18 11:51:00的发言:
谢谢,可还是没明白为什么,e.row.index会超过集合数量吗?

 

不清楚。但判断必须加上。你fp集合赋值有可能在drawcell事件执行之后。