表的行数 ListObject

我有一张桌子 excel 有一行标题和数据正文的一行。 我想计算数据线。 当我试图检查我的表格有多少行


Set myWorkSheet= ActiveWorkbook.Worksheets/"Sheet1"/
Set myTable= myWorkSheet.ListObjects/"Table1"/
countrows = myTable.ListRows.Count



countrows

包含
0

. 如果他有 2 或更多行,它给出了正确的行号。 为什么他说 0 一行,是计算线路的最佳方式还是最好的方法?

EDIT

:

我发现问题是什么原因。 在再次填写之前,我使用这些行清理表格:


If tblChart.ListRows.Count >= 1 Then
myTable.DataBodyRange.Delete
End If


在此操作之后,表看起来像我描述了它。 没有它并改变表,所以它看起来我描述了表格,她工作了。 但为什么这个问题这样一个问题?
已邀请:

詹大官人

赞同来自:

财产 ListObject, 你正在寻找哪个 - 这是
.DataBodyRange

.


Dim myWorkSheet As Worksheet, myTable As ListObject, countRows As Long
Set myWorkSheet = ActiveWorkbook.Worksheets/"Sheet1"/
Set myTable = myWorkSheet.ListObjects/"Table1"/
countRows = myTable.DataBodyRange.Rows.Count
Debug.Print countRows


完整的属性列表 ListObject 可用于:
https://msdn.microsoft.com/en- ... .aspx
.

董宝中

赞同来自:

答案是迟到的,以便搜索 Google 带上一个用户:
我也发现了这个问题。 DataBodyRange 如果没有两个数据线,则不存在该对象。 不仅仅是两个空字符串,而且至少在一列中的两行数据。
我找到了可靠的工作 - 它是检查是否存在 DataBodyRange:


If Not TableListObject.DataBodyRange is Nothing Then
Debug.Print "Data Rows Count=", TableListObject.DataBodyRange.Rows.Count
Else
Debug.Print "No Data in Table detected"
End if

要回复问题请先登录注册