Delete

此方法用于删除行。

例如删除当前表的当前行:

CurrentTable.Current.Delete()

再例如删除订单表选定的多行:

With Tables("订单")
    For
i As Integer = .BottomPosition To .TopPosition Step -1
        .Rows(i).Delete()

    Next
End
With

上面的代码中,我们从选定区域的最后一行开始删除,每删除一行,循环变量i减1。

你也许会问,为什么不这样:

With CurrentTable
    For
i As Integer = .TopPosition To .BottomPosition
        .Rows(i).Delete()

    Next
End
With

表面上看,上面的代码没问题,但是实际上,却根本不会正确执行,原因:
假定
TopPosition 属性等于6,第一次循环,i的值是6,代码会正确地删除位置6的行;第二次循环,i的值是7,于是删除位置7的行,但是原来位置6的行被删除后,位置7的行成为位置6的行,你现在删除位置7的行,实际上删除的是原来位置8的行,所以你等于跳过了位置7的行;最终的结果是一些该被删除的行没有被删除,而一些不该被删除的行却被删除了 ,这样的错误初学者很容易犯,务必留意。


本页地址:http://www.foxtable.com/webhelp/topics/0599.htm