以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请问:下列代码具有删除重复行功能,但是,当行为一行、或两行时,全部删除,行数必须为三行以上?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=25678)

--  作者:lyfxybc
--  发布时间:2012/11/14 12:00:00
--  请问:下列代码具有删除重复行功能,但是,当行为一行、或两行时,全部删除,行数必须为三行以上?

请问:下列代码具有删除重复行功能,但是,当行为一行、或两行(不重复)时,全部删除,行数必须为三行以上才能不被全部删除?如何保证只有一行或两行时不被删除,两行重复留一行,两行不重复不被删除?

 

 

Dim t As Table =  Tables("导入订单")
t.Select(t.Rowsel,t.cols("重复删除过渡列").Index)
syscmd.Filter.ShowRedundantValues
For i As Integer = t.Rows.Count -1 To 0 Step -1
    t.rows(i).Delete
Next
t.filter = ""


--  作者:狐狸爸爸
--  发布时间:2012/11/14 12:02:00
--  

显示冗余值,只有行数大于等于3的时候,才会执行。

 


--  作者:狐狸爸爸
--  发布时间:2012/11/14 12:06:00
--  

比较合理的代码,删除第一列重复的行:

 

Dim drs As List(of DataRow) =  DataTables("表A").Select("", "第一列")
For i As Integer = drs.count - 1 To 1 Step - 1
    If drs(i)("第一列") = drs(i-1)("第一列") Then
        drs(i).delete
    End If
Next


--  作者:lin_hailun
--  发布时间:2012/11/14 12:07:00
--  
 楼主加一个判断吧,自己处理少于两行的问题。
--  作者:shenyl0211
--  发布时间:2012/11/14 12:17:00
--  

楼主:如果只有两行的话,一眼就看到了,还有必要考虑重复筛选吗?软件作者就是考虑这一点的。干嘛要把简单的问题复杂化呢?

 


--  作者:lyfxybc
--  发布时间:2012/11/14 12:22:00
--  
谢谢,知道了。
--  作者:lightmyfire
--  发布时间:2013/6/19 22:51:00
--  回复:(狐狸爸爸)比较合理的代码,删除第一列重复的...
这样把重复行都删除了,如果我想保留一行,应该怎么办
--  作者:狐狸爸爸
--  发布时间:2013/6/20 8:36:00
--  
显示冗余值,只会显示超过一行的多余的重复值,直接删除,然后取消筛选,你就会发现保留有一行的。