2015-07-28 39 views
0

在我的工作表(book1)中,從另一個工作表(book2)中查找數據時,我需要自動隱藏所有空行(即使它們包含公式),並在值自動更改時取消隱藏。 的意思是,如果我更改書籍2表格中的值,則書籍1表格應該通過隱藏或取消隱藏行來自動作出反應。更改後自動隱藏空行

這是代碼。

Sub hideEmptyRows() 
    Application.ScreenUpdating = False 
    For i = 1 To 117 
     If ActiveSheet.Cells(i, 1) = "" Then 
      ActiveSheet.Cells(i, 1).EntireRow.Hidden = True 
     End If 
    Next i Application.ScreenUpdating = True 
End Sub 
+0

您可以發佈您當前的代碼? –

+0

您好Mush先生,我發現這個代碼隱藏空白行,但它不是我正在尋找。子hideEmptyRows() Application.ScreenUpdating =假 對於i = 1至117 如果ActiveSheet.Cells(I,1)= 「」 然後 ActiveSheet.Cells(I,1).EntireRow.Hidden =真 完If Next i Application.ScreenUpdating = True End Sub –

+0

它輸出'0'嗎?它輸出了「#N/A」嗎? – user3819867

回答

0
Sub hideEmptyRows() 
    Application.ScreenUpdating = False 
    ActiveSheet.Cells.Rows.Hidden = False 'unhide all 
    LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 'find the last row 
    For i = 1 To LastRow 
     If ActiveSheet.Cells(i, 1).Value2 = "" Or ActiveSheet.Cells(i, 1).Value2 = 0 Or IsError(ActiveSheet.Cells(i, 1).Value2) Then 'if it's an empty string, a 0 (empty cell) or an error 
      ActiveSheet.Cells(i, 1).EntireRow.Hidden = True 'then hide it 
     End If 
    Next i 
    Application.ScreenUpdating = True 
    UpBound = Cells.Rows.Count 'hides all rows after the last used one 
    Range(LastRow + 1 & ":" & UpBound).Rows.Hidden = True 
End Sub 
+0

非常感謝user3819867,代碼確實隱藏了空白行,但我仍然需要它自動更新 - 如果我將行變爲空白,它應該會消失,而不會每次都運行宏。雲請協助我嗎? –

+0

關於如何鏈接[宏到事件](http://www.cpearson.com/excel/Events.aspx)有各種來源。您需要將'Worksheet_Change'事件觸發器添加到工作表模塊或工作簿。 – user3819867

+0

你能告訴我怎麼做,我不熟悉VBA –