2013-08-06 43 views
5

我是學習VBA的新手,想知道是否有人可以幫助我獲得我需要的代碼來計算我的數據所在行的總數。我希望能夠在具有不同數據行數量的多個工作表上使用它。有數據存在的行數

更具體地說,我找不出通用代碼來計算 A1 - A100或A1-A300的行數。

現在我正在嘗試使用這樣的東西,但它不起作用。

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

請幫忙!

感謝

回答

11

如果需要VBA,你可以做一些快速的是這樣的:

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

這將打印在最後一排的數量與它的數據。顯然,如果您將它用於其他目的,則不需要MsgBox,但lastRow將成爲該值。

+0

這也很完美,謝謝你的幫助 –

-1

您是否嘗試過這個?:

countif(rangethatyouhave, not("")) 

我不認爲你需要打開代碼編輯器,你可以做它在電子表格本身。

4

假設你Sheet1是沒有必要的活動,那麼您將需要使用你的這種改進代碼:

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

查找到的第二個參數完全工作的參考爲Range(arg1, arg2)在這種情況下,這很重要。

+0

太棒了。這工作完美。 謝謝你的幫助。 –

-1

這適用於我。當pivotcolumnfiltered並且我需要可見cellscount時,返回Excel在底部狀態行中顯示的數字。

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

我發現這個方法上http://www.mrexcel.com/

此計算在名爲「數據」

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

工作表的A列非空白的細胞數的結果被打印到即時窗口。如果列A有一個不希望計數的標題行(或行),則需要減去1(或更多)。

相關問題