без шапки и итогов: Workbooks("Книга1.xlsm").Worksheets("Лист1").ListObjects("Таблица1").ListRows.Count или Workbooks("Книга1.xlsm").Worksheets("Лист1").ListObjects("Таблица1").DataBodyRange.Rows.Count
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous, не работает. А если мне макросом понадобится открыть другую таблицу и посчитать строки там, то как ссылаться? Все время активировать нужный лист?
Елена Дроздова, можно еще использовать SQL запрос (добавил в ознакомительных целях) код:
Код
Sub Macro()
Dim myConnect As String, mySQL As String, myRecord As Object
DataRange = "[" & ActiveWorkbook.Sheets(1).Name & "$" & strAddress & "]"
myConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ActiveWorkbook.FullName & ";" & _
"Extended Properties=""Excel 12.0;HDR=YES"""
Set myRecord = CreateObject("ADODB.Recordset")
mySQL = "SELECT COUNT(*) FROM [Лист1$]"
myRecord.Open mySQL, myConnect
[E1].CopyFromRecordset myRecord
End Sub
в ячейку E1 выводит количество строк. или использовать Ваш макрос:
Код
Sub Макрос1()
Dim myTable As ListObject
Set myTable = Worksheets(1).ListObjects("Таблица1")
MsgBox myTable.DataBodyRange.Rows.Count
' или: (можете раскомментировать)
' LastRow = Range("Таблица1").Rows.Count
' MsgBox (LastRow)
End Sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄