首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

MSHFlixGrid反复单元格过滤

2013-03-28 
MSHFlixGrid重复单元格过滤现在我有二张MSHFlixGridG表格,一张是入库编辑用(A),一张是物料档案(B)(并且A表

MSHFlixGrid重复单元格过滤
现在我有二张MSHFlixGridG表格,
一张是入库编辑用(A),一张是物料档案(B)(并且A表与B表的行数是不同的)。
当点击A的末行第1列时,弹出第B,
当点击B,将在B中单击的那一行写到A的末行中。
同时A表自动增加一行。

现在问题是:
当点击B时,要过滤在B中选定的那行内容在A中是否以存在,如果存在提示:不可能重选择,并隐藏物料档案表。

我尝试着用循环来处理,代码如下:
For i=1 to A.Rows-1
  For j=1 to B.Rows-1
     'B表中当前第1列单元格不等于A表第1列单元格的内容时
     IF trim(B.TextMartix(B.Row,1))<>trim(A.TextMartix(i.1)) Then
          A.TextMartix(.Rows-1,1)=B.TextMatrix(j,1)
          A.TextMartix(.Rows-1,2)=B.TextMatrix(j,2)
          B.Visible=Flase
          A=A+1
         Else
            MsgBox"不可以重复选择!",,"系统提示!"
            B.Visible=False
     End If
   Next B
Next A
结果是:
如果在代码中没有加:A=A+1,则永远是对A表的第1行进行对比。
如果在代码中加了:A=A+1,则会出现下标越界。

在此垦请高手指点了。
如果解决办法须用循环来处理,那我的代码出错在哪里?
如果不需用循环来处理,那请贴上其它处理办法的代码!

[解决办法]

dim blnIsExists  as boolean   '是否存在
blnIsExists=false    '默认为不存在
For i=1 to A.Rows-1
    if trim(B.TextMatrix(B.row,1))=trim(A.TextMatrix(i,1)) then
        blnIsExists=true
        exit for
    end if
Next i

if blnIsExists=False then
    A.Rows=A.Rows+1
Else
    MsgBox"不可以重复选择!",,"系统提示!"
    B.Visible=False
End If

热点排行