Подсчитайте количество строк на другом листе

Я рассмотрел предложенные вопросы, чтобы найти ответ на мою проблему. Самый близкий вопрос называется: Count количество строк в другой таблице Excel. Количество строк в другом листе Excel.

Решение этой проблемы не работает для меня.

Я пытаюсь подсчитать количество строк в диапазоне в другом листе, чем активный рабочий лист. Вот мой код:

Sub verbflashcards() Dim wordcount As Long With Worksheets("Verbs") wordcount = .Range(Cells(4, 1), Cells(4, 1).End(xlDown)).Rows.Count End With MsgBox (wordcount) End Sub 

У меня есть рабочий лист под названием «Глаголы», и это второй рабочий лист в книге. Я пытался:

 With Verbs With Sheet2 With Sheets("Verbs") With Sheets("Sheet2") 

Ни один из них, похоже, не работает.

Проверьте это и надейтесь, что это поможет вам:

 Sub verbflashcards() Dim wordcount As Long wordcount = ActiveWorkbook.Worksheets("Verbs").Range("A4", Worksheets("Verbs").Range("A4").End(xlDown)).Rows.Count MsgBox (wordcount) End Sub 

Где, D1 – столбец, из которого вы можете получить количество строк.

Способ 2:

 Sub verbflashcards() Dim wordcount As Long With Sheets("Verbs") wordcount = .Range("A" & .Rows.Count).End(xlUp).Row End With MsgBox (wordcount) End Sub 

Примечание. На ваши вопросы вы найдете множество ответов. Проверьте эту ссылку SO: Как найти последнюю строку, содержащую данные на листе Excel с макросом?

Ваш оригинал не работал, потому что родительский Cells(4, 1).End(xlDown) Cells(4, 1) и Cells(4, 1).End(xlDown) не был указан. Префикс любого адреса ячейки с периодом (aka. Или полной остановкой ), когда вы находитесь внутри With ... End With block. Пример:

 With Worksheets("Verbs") wordcount = .Range(.Cells(4, 1), .Cells(4, 1).End(xlDown)).Rows.Count End With 

Обратите внимание на .Cells(4, 1) а не на Cells(4, 1) . Период указывает, что ячейка (ы), на которую вы ссылаетесь, находится в пределах Рабочих листов («Глаголы»).

Давайте будем гением компьютера.