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

Я посмотрел на предложенные вопросы, чтобы найти ответ на мою проблему. Самый близкий вопрос называется: Подсчет количества строк на другом листе 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") 

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

2 ответов


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

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) и Cells(4, 1).End(xlDown) не был указан. Префикс любого адреса ячейки с точкой (aka . или полная остановка) когда вы находитесь внутри With ... End With заблокировать. Пример:

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

Примечание .Cells(4, 1), а не Cells(4, 1). Период указывает, что ячейки, на которые вы ссылаетесь, находятся в рабочих листах ("глаголы").