تحديد عدد الصفوف في النطاق [مغلق]
سؤال
أعرف اسم النطاق لبداية القائمة - 1
عمود واسع و x
صفوف عميقة.
كيف أحسب x
?
هناك بيانات في العمود أكثر من هذه القائمة فقط.ومع ذلك، فإن هذه القائمة متجاورة - فلا يوجد شيء في أي من الخلايا الموجودة أعلىها أو أسفلها أو بجانبها.
المحلول
Function ListRowCount(ByVal FirstCellName as String) as Long
With thisworkbook.Names(FirstCellName).RefersToRange
If isempty(.Offset(1,0).value) Then
ListRowCount = 1
Else
ListRowCount = .End(xlDown).row - .row + 1
End If
End With
End Function
ولكن إذا كنت متأكدًا من عدم وجود أي شيء في القائمة، فما عليك إلا thisworkbook.Names(FirstCellName).RefersToRange.CurrentRegion.rows.count
نصائح أخرى
Sheet1.Range("myrange").Rows.Count
لماذا لا تستخدم صيغة Excel لتحديد الصفوف؟على سبيل المثال، إذا كنت تبحث عن عدد الخلايا التي تحتوي على بيانات في العمود A، استخدم هذا:
=COUNTIFS(A:A،"<>")
يمكنك استبدال <> بأي قيمة لمعرفة عدد الصفوف التي تحتوي على هذه القيمة.
=COUNTIFS(أ:أ،"2008")
يمكن استخدام هذا للعثور على الخلايا المملوءة في صف واحد أيضًا.
تستطيع ايضا استخذام:
Range( RangeName ).end(xlDown).row
للعثور على الصف الأخير الذي يحتوي على بيانات بدءًا من النطاق المحدد.
أنا متأكد من أنك ربما أردت الإجابة التي قدمها @GSerg.هناك أيضًا وظيفة ورقة عمل تسمى rows
سيعطيك عدد الصفوف.
لذا، إذا كان لديك نطاق بيانات مسمى يسمى Data
الذي يحتوي على 7 صفوف، ثم =ROWS(Data)
سوف تظهر 7 في تلك الخلية.
هذا السطر الأخير يعمل بشكل مثاليGSerg.
الوظيفة الأخرى هي ما كنت أعمل عليه ولكني لا أحب الاضطرار إلى اللجوء إلى UDF ما لم يكن ذلك ضروريًا للغاية.
كنت أحاول الجمع بين برنامجي Excel وvba وتمكنت من تشغيل هذا - ولكنه صعب مقارنة بإجابتك.
strArea = Sheets("Oper St Report CC").Range("cc_rev").CurrentRegion.Address
cc_rev_rows = "=ROWS(" & strArea & ")"
Range("cc_rev_count").Formula = cc_rev_rows