一般来说,用
With
Spd1
rr
=
.ActiveRow
.DeleteRows rr,
1
.SetSelection
1
, rr,
2
, rr
.MaxRows
=
.DataRowCnt
End
With
可以删除该行,但带有数据源绑定与不带有绑定表现不一
不带数据源绑定时,deleterows命令正常删除该行,并在下面自动增加一空白行。帮助如是说:
Deleting rows does not decrease the number of rows set by the MaxRows property. When you call the DeleteRows method to delete a row, a blank row is automatically added at the end of the sheet.
而带有数据源绑定时,如果DAutoSave = False,那么该行事实上如是行高变为0隐藏起来,并没有删除,如果这时上下移动行,就会发现被删除的行仍然存在,一个事实就是被删除行以后行最左侧的行序号没有发生变化(删除后应该填补被删除的行号),并且最后面也没有多出空行。如果DAutoSave = True,则一切正常,操作起来如同不带绑定的情况。
所以如果用deleteRow命令删除行是,一定要多加注意。

本文介绍了使用VBA在Excel中删除行的方法,并讨论了不同情况下(是否带有数据源绑定)DeleteRows命令的行为差异。当不带有数据源绑定时,删除行后会在表格末尾自动添加空白行;而带有数据源绑定时,行为会有所不同,特别是当DAutoSave属性为False时,被删除的行实际上只是被隐藏而非真正删除。
878

被折叠的 条评论
为什么被折叠?



