2013-01-03 19 views
1

我隱藏的行通過使用下面的代碼行排除前兩行,只因爲他們是頭。如何在所有行的圖表隱藏時獲取RowCount?

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行。那麼如何讓隱藏的行可見?

+0

堅持一秒,你到底想要做什麼?獲取所有行,隱藏行或可見行的總數? – Quannt

+0

最初我隱藏所有的行之後,我隱藏了隱藏的行。我想現在很清楚,感謝你的迴應。 –

+0

你是什麼意思表單有10行? – shahkalpesh

回答

0

如果我正確理解你的問題,這裏是接近你的問題的另一種方式,這將使你在運行速度更快,是一個非常乾淨的管理一些代碼:

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 
0

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或其他函數的速度更快。

+0

謝謝Stenci的回覆。它爲我工作。我是VB新手,所以請給我一個關於SpecialCells的小例子,其中提供了不同類型的參數。再一次感謝你。 –

+0

你想要什麼類型的例子?爲什麼我沒有真正使用'SpecialCells'的另一個原因是因爲他們模擬了你使用Excel進行交互操作的方式,例如按Ctrl + End或End和DownArrow。 – stenci

相關問題