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