[英]How to get the RowCount when all Rows of Sheet are hidden?
我通过使用以下几行代码(不包括前两行)来隐藏行,仅因为它们是标题。
For i=3 To ThisWorkBook.Sheets("ALL").Range("A1",ThisWorkBook.Sheets("ALL").Range("A65536").End(xlUp)).Rows.Count
ThisWorkBook.Sheets("ALL").Rows(i).EntireRow.Hidden=True
Next
现在要获取隐藏行数,我正在使用以下代码行
From i=3 To ThisWorkBook.Sheets("ALL").Range("A1",ThisWorkBook.Sheets("ALL").Range("A65536").End(xlUp)).Rows.Count
ThisWorkbook.Sheets("ALL").EntireRow.Hidden=False
Next
但是我将rowcount
设为2。实际上,工作表有10行。 那么如何使隐藏的行可见?
如果我正确理解了您的问题,这是解决问题的另一种方法,它将为您提供一些运行速度更快且易于管理的代码:
Option Explicit
Sub CountHiddenRows()
Dim wks As Worksheet
Set wks = ThisWorkbook.Sheets("ALL")
With wks
Dim lngLastRow As Long
lngLastRow = .Range("A" & .Rows.Count).End(xlUp).Row
.Range("A3:A" * lngLastRow).EntireRow.Hidden = True
Dim rngConsider As Range
Dim lngHiddenRows As Long, lngRows As Long, lngVisibleRows As Long
Set rngConsider = .Range("A1:A" & lngLastRow)
lngRows = rngConsider.Rows.Count
lngVisibleRows = rngConsider.SpecialCells(xlCellTypeVisible).Rows.Count
lngHiddenRows = lngRows - lngVisibleRows
MsgBox "There are " & lngHiddenRows & " hidden rows."
End With
End Sub
Worksheet.Rows.Count
始终返回Worksheet.Rows.Count
的总行数。
在这里,我将使用Worksheet.UsedRange.Rows.Count
。
另外,当最后一行的第一个单元格为空时,您的代码可能会失败。
这是一个小功能,用于计算第2行和最后使用的行之间的可见行数。
Function CountVisibleRows() As Integer
Dim R As Integer
For R = 2 To UsedRange.Rows.Count
If Not Rows(R).Hidden Then CountVisibleRows = CountVisibleRows + 1
Next R
End Function
当行数很少时,我通常会使用一个循环,因为我拥有更好的控制力,而且速度通常更快。
当我处理数千行时,要求Excel使用SpecialCells
或其他功能会更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.