2013-08-06 16 views
5

Jestem nowy w nauczaniu VBA i zastanawiałem się, czy ktoś może mi pomóc z kodem potrzebnym do zliczenia całkowitej liczby wierszy, które mam z danymi w nich. Chcę móc używać tego na wielu arkuszach z różnymi ilościami wierszy danych.Liczba wierszy, w której istnieją dane

Dokładniej nie mogę obliczyć kodu ogólnego, który policzy liczbę wierszy od A1 - A100 lub A1- A300.

Teraz próbuję użyć czegoś takiego, ale to nie działa.

i = ActiveWorkbook.Worksheets("Sheet1").Range("A2 , Range("A2").End(xlDown)).Rows.Count 

Proszę pomóc!

Dzięki

Odpowiedz

11

Jeśli potrzebujesz VBA, można zrobić coś szybko jak to:

Sub Test() 
    With ActiveSheet 
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    MsgBox lastRow 
    End With 
End Sub 

To będzie drukować numer ostatniego wiersza z danych w nim. Oczywiście nie potrzebujesz MsgBox, jeśli używasz go do jakiegoś innego celu, ale lastRow stanie się tą wartością.

+0

To również działa doskonale, dziękuję za pomoc –

-1

Czy próbowałeś to ?:

countif(rangethatyouhave, not("")) 

Nie sądzę, trzeba otworzyć edytor kodu, można po prostu zrobić to w samym arkuszu.

4

Zakładając, że nie jest konieczne Sheet1 aktywny trzeba by użyć tego ulepszony kod Ciebie:

i = ActiveWorkbook.Worksheets("Sheet1").Range("A2" , Worksheets("Sheet1").Range("A2").End(xlDown)).Rows.Count 

zajrzeć do pełnego odniesienia arkusza do drugiego argumentu dla Range(arg1, arg2) których ważne w tej sytuacji.

+0

Awesome. To działa idealnie. Dziękuję za pomoc. –

-1

To działa dla mnie. Zwraca liczbę wyświetlaną przez program Excel w dolnym wierszu statusu, gdy potrzebna jest count widocznej wartości cells.

Global Const DashBoardSheet = "DashBoard" 
Global Const ProfileColRng = "$L:$L" 
. 
. 
. 
Sub MySub() 
Dim myreccnt as long 
. 
. 
. 
myreccnt = GetFilteredPivotRowCount(DashBoardSheet, ProfileColRng) 
. 
. 
. 
End Sub 

Function GetFilteredPivotRowCount(sheetname As String, cntrange As String) As long 

Dim reccnt As Long 

reccnt = Sheets(sheetname).Range(cntrange).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Count - 1 

GetFilteredPivotRowCount = reccnt 

End Function 
1

znalazłem tę metodę na http://www.mrexcel.com/

ten oblicza liczbę nie pustych komórek w kolumnie A arkusza o nazwie „Dane”

With Worksheets("Data") 
    Ndt =Application.Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count 
    debug.print Ndt 
End With 

Rezultatem jest wydrukowany na najbliższym oknie . Musisz odjąć 1 (lub więcej), jeśli kolumna A ma linię nagłówka (lub wiersze), których nie chcesz liczyć.