VBA编程,怎么取得一个表单中含有数据的总行数
在一个表单中,当行中的数据被删除但是该行已经格式化了,我用Cells.SpecialCells(xlCellTypeLastCell).Row 得到的函数依然包括已经贝删除数据的行数,请问:我怎么得到那些只含有数据的行数,谢谢。
代码如下:
'将其他几个具有相同结构的表单数据合并到第一个表单中
Public Sub nst()
For i = 2 To Sheets.Count
Sheets(i).Activate
r = Cells.SpecialCells(xlCellTypeLastCell).Row
Rows("2:" & r).Select
Selection.Copy
Sheets(1).Activate
r = Cells.SpecialCells(xlCellTypeLastCell).Row + 1
Cells(r, 1).Activate
ActiveSheet.Paste
Next
Sheets(1).Activate
Columns("A:A").Select
Selection.Insert Shift:=xlToRight ', CopyOrigin:=xlFormatFromLeftOrAbove
Cells(1, 1) = "总序号"
r = Cells.SpecialCells(xlCellTypeLastCell).Row
For i = 2 To r
Cells(i, 1) = i - 1
Next
End Sub
[最优解释]
楼主用的是手工删除还是程序?要直接删除行,不要只清空数据
不要用 Selection.ClearContents
要用 Selection.Delete
另外楼主用的哪个版本,我在2010中也发现一个问题
就是在删除之后,数据行还是包括那些被删除的行,需要保存关闭EXCEL,然后再启动就可以行到正确的结果了,不知道是不是EXCEL2010的BUG.
[其他解释]