2013-08-06 40 views
5

Tôi mới học VBA và tự hỏi liệu có ai đó có thể giúp tôi bằng mã tôi cần đếm tổng số hàng mà tôi có với dữ liệu trong đó không. Tôi muốn có thể sử dụng điều này trên nhiều trang tính với số lượng hàng dữ liệu khác nhau.Số lượng hàng dữ liệu tồn tại

Cụ thể hơn, tôi không thể tìm ra mã chung sẽ đếm số hàng từ A1 - A100 hoặc A1- A300.

Hiện tại tôi đang cố gắng sử dụng một cái gì đó như thế này, nhưng nó không hoạt động.

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

Xin vui lòng trợ giúp!

Cảm ơn

Trả lời

11

Nếu bạn cần VBA, bạn có thể làm một cái gì đó nhanh chóng như thế này:

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

này sẽ in số lượng hàng cuối cùng với các dữ liệu trong đó. Rõ ràng không cần MsgBox trong đó nếu bạn đang sử dụng nó cho một số mục đích khác, nhưng lastRow sẽ trở thành giá trị đó dù sao.

+0

Điều này cũng hoạt động hoàn hảo, cảm ơn sự giúp đỡ của bạn –

-1

Các bạn đã thử này ?:

countif(rangethatyouhave, not("")) 

Tôi không nghĩ rằng bạn cần phải mở trình soạn thảo mã, bạn chỉ có thể làm điều đó trong bảng tính riêng của mình.

4

Giả sử rằng Sheet1 của bạn là không cần thiết hoạt động bạn sẽ cần phải sử dụng mã cải tiến này của bạn:

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

Nhìn vào tham khảo bảng đầy đủ cho đối số thứ hai cho Range(arg1, arg2) mà quan trọng trong tình huống này.

+0

Tuyệt vời. Điều này hoạt động hoàn hảo. Cảm ơn sự giúp đỡ của bạn. –

-1

Điều này phù hợp với tôi. Trả lại số mà Excel hiển thị trong dòng trạng thái dưới cùng khi pivotcolumnfiltered và tôi cần số count của số cells hiển thị.

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

tôi thấy phương pháp này trên http://www.mrexcel.com/

này tính số lượng tế bào không trống trong cột A của bảng có tên là "dữ liệu"

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

Kết quả được in ra cửa sổ ngay lập tức . Bạn cần trừ 1 (hoặc nhiều hơn) nếu cột A có dòng tiêu đề (hoặc dòng) mà bạn không muốn đếm.