2013-12-06 2 views
0

Как подсчитать количество ячеек, которые полностью и получить номер возвратаПодсчитайте количество клеток, которые полны

Например: Range («A4»), а затем подсчитать количество ячеек, которые находятся под которые имеют текст и возвращают счет. Должен остановиться, когда попадает в ячейку без текста.

L = CountA("A4").End(xlDown) 
+0

Что вы * вы * пробовали? '= COUNTA (...)' формула может сделать это, без излишеств. – Manhattan

+0

Что вы имеете в виду, я попробовал lastRow = .Cells (.Rows.Count, «A4»). End (xlUp) .Но только хочу отсчитывать от a4, пока не будет ничего ниже, я не хочу, чтобы он считал все в A \ –

+0

L = CountA («A4»). Конец (xlDown) будет что-то вроде этой работы –

ответ

0

EDIT: В соответствии с комментариями, это правильный код:

Простой End(xlDown) подход

Sub GetCellCount() 
    With ThisWorkbook.Sheets("Sheet1") 'Modify as necessary. 
     Set HeadC = .Range("A4") 
     CellCt = HeadC.End(xlDown).Row - HeadC.Row 
     MsgBox CellCt 
    End With 
End Sub 

Результат:

enter image description here

Дайте нам знать, если го это помогает.

EDIT2: Не устраивает вышеуказанное, поскольку простой подход End(xlDown) может представлять потенциальные проблемы в будущем. Другие подходы ниже.

Проверка пустых ячеек приближается

Sub GetCellCountv2() 
    With ThisWorkbook.Sheets("Sheet1") 'Modify as necessary. 
     CellCt = 0 
     Set HeadC = .Range("A4") 'Modify as necessary. 
     For Iter = HeadC.Row + 1 To .Rows.Count 
      If Not IsEmpty(.Cells(Iter, HeadC.Column)) Then 
       CellCt = CellCt + 1 
      Else 
       Exit For 
      End If 
     Next Iter 
     MsgBox CellCt 
    End With 
End Sub 

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

Sub GetCellCountv3() 
    With ThisWorkbook.Sheets("Sheet1") 'Modify as necessary. 
     CellCt = 0 
     Set HeadC = .Range("A4") 'Modify as necessary. 
     For Iter = HeadC.Row + 1 To .Rows.Count 
      If Len(.Cells(Iter, HeadC.Column).Value) > 0 Then 
       CellCt = CellCt + 1 
      Else 
       Exit For 
      End If 
     Next Iter 
     MsgBox CellCt 
    End With 
End Sub 

Надеется, что это может решить несколько потенциальных проблемы с просьбой.

+0

Своя дающая мне 23 с ThisWorkbook.ActiveSheet «Измените при необходимости. LRow = .Cells (Rows.Count, 1) .End (xlUp) .Row CellCt = LRow - 4 'Потому что вы начали с A4. MsgBox CellCt End With –

+0

Не нужно включать весь код в комментарий. Где заканчиваются ваши данные? – Manhattan

+0

У меня есть заголовок A4, как у вас есть, тогда есть контент ниже, который вам нужен, чтобы просто подсчитать этот контент. Пример: Hearer - это 4, если говорить, что есть до 12, тогда есть пустая ячейка, где она должна заканчиваться. есть больше контента после этой пустой ячейки, что я не хочу, чтобы он подсчитывал –

Смежные вопросы