首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VBA编程,如何取得一个表单中含有数据的总行数

2012-12-16 
VBA编程,怎么取得一个表单中含有数据的总行数在一个表单中,当行中的数据被删除但是该行已经格式化了,我用C

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.
[其他解释]

引用:
楼主用的是手工删除还是程序?要直接删除行,不要只清空数据
不要用 Selection.ClearContents
要用   Selection.Delete

另外楼主用的哪个版本,我在2010中也发现一个问题
就是在删除之后,数据行还是包括那些被删除的行,需要保存关闭EXCEL,然后再启动就可以行到正确的结果了,不知道是不是EXCEL2010的BUG.


2010中bug你试着save在取值试下.

热点排行