一、想删除表的所有空行
下面代码执行结果的“删除前总行数 i ”,怎么会和“有数据的行数 i4”一样呢?
不应该吧?
二、有更好的删除表所有空行的方法吗?
三、代码
1、下面代码的执行结果: 总是 i = i4
删除前总行数 i = 103
删除的空行数 i3 = 50
有数据的行数 i4 = 103
总列数 = 10
删除后总行数 = 53
2、代码
MainTable = Tables("表C")
Dim i,i2,i3,i4 As Integer
Dim t As Table = Tables("表C")
t.StopReDraw
For i = 0 To t.Rows.Count - 1
i2 = 0
For Each c As Col In t.Cols
If t.Rows(i).IsNull(c) Then
i2 = i2 + 1 ' 累计为空的列数
Else
Exit For ' 遇到第一个不为空的列,则退出循环'
End If
Next
If i2 = t.Cols.Count Then ' 累计为空的列数 = 列集合数,则删除该行
t.Rows(i).Delete()
i3 = i3 + 1 ' 累计删除的空行数
i = i - 1 ' 为了再次循环时,保持当前的行号
Else
i4 = i4 + 1 ' 累计不为空( 有数据 ) 的行数
End If
Next
t.ResumeRedraw
output.show("删除前总行数 i = " & i)
output.show("删除的空行数 i3 = " & i3)
output.show("有数据的行数 i4 = " & i4)
output.show("总列数 = " & t.Cols.Count )
output.show("删除后总行数 = " & t.Rows.Count )