Подсчет строк таблицы Excel, заполненных данными на VBA - PullRequest
0 голосов
/ 18 сентября 2019

Так что я сейчас работаю с таблицей в Excel, которую я назвал Table1 с тремя столбцами (Столбец 1, Столбец 2 и Столбец 3).Я пытался подсчитать использованные строки или заполненные строки в таблице, используя VBA, но не повезло.

Пример 1:

UsedRows= Sheets ("Sheet1").ListObjects.("Table1[#Column 1]").UsedRange.ListRows.Count

Пример 2 (Этот возвращает только все доступные строки)

UsedRows= Sheets ("Sheet1").ListObjects.("Table1[#Column 1]").ListRows.Count

Я хочу либо количество заполненных, либо незаполненных строк.Любой из двух будет работать просто отлично.Помните, что это Таблица, поэтому End (xlUp) и End (xlDown) работают немного по-разному.Я тоже пробовал это сделать, но я все еще получаю либо общее количество доступных строк, либо измененные ячейки, что намного больше, чем у меня доступно.

Спасибо за помощь в расширенных постах.

Ответы [ 2 ]

2 голосов
/ 18 сентября 2019

Звучит так, как будто вы можете использовать CountA, вот так:

Dim myColumn As ListColumn
Set myColumn = Sheets("Sheet1").ListObjects("Table1").ListColumns("Column 1")

Dim UsedRows As Long
UsedRows = Application.CountA(myColumn.DataBodyRange)
Debug.Print UsedRows
0 голосов
/ 18 сентября 2019

Если у вас нет пустых ячеек в других строках. 3 не нужно жестко кодировать, это просто количество столбцов в вашей таблице.

Sub x()

Dim r As Range

Set r = ActiveSheet.ListObjects(1).DataBodyRange

With WorksheetFunction
    MsgBox .CountBlank(r) / 3                  'empty rows
    MsgBox (r.Rows.Count - .CountBlank(r) / 3) 'non-empty rows
End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...