2014-09-26 158 views
0

我想設計一個宏,它將簡單地關閉某個工作簿上的過濾。我已經開始編寫代碼,但由於某種原因,在第一行的註釋下它會導致應用程序或對象定義的錯誤。我真的很困惑爲什麼會這樣。我已經發布了下面的代碼。任何幫助將不勝感激。Excel VBA Unfiltering宏

Sub crossUpdate() 

Dim rng1 As Range, rng2 As Range, rng1Row As Range, rng2Row As Range, Key As Range, match As Integer 

Workbooks("011 High Level Task List v2.xlsm").Activate 

'Unhide and Unfilter columns and rows on original sheet 
With Sheets("Development Priority List").Cells 
.EntireColumn.Hidden = False 
.EntireRow.Hidden = False 
.AutoFilter 
End With 
+0

擺脫ActiveWorkbook部分。一旦激活該工作簿,只使用工作表參考應該沒問題。如果您想繼續使用ActiveWorkbook,則必須明確說明表單名稱。像ActiveWorkbook.Sheets(「無論表名是什麼」)。EntireColumn.Hidden = False – sous2817 2014-09-26 20:26:49

+0

它仍然給我的對象定義的錯誤。我對上面的代碼進行了更改。 – 2014-09-26 20:33:11

+0

此代碼適用於我,所以它可能是別的。您的工作簿/工作表/單元格是否受到任何方式的保護?您的代碼還存儲在哪裏 - 它應該位於「標準」模塊中,而不是「表格」模塊中。也許還嘗試保存/關閉/重新打開您的工作簿? – barryleajo 2014-09-26 21:28:23

回答

0

試試這個,修改代碼線以下類似:

ActiveWorkbook.Sheets("Sheet3").Cells.EntireColumn.Hidden = False 

爲了節省自己一些打字,你也可以考慮:

With ActiveWorkbook.Sheets("Sheet3").Cells 
.EntireColumn.Hidden = False 
.EntireRow.Hidden = False 
.AutoFilter 
End With 
+0

它仍然在說同樣的錯誤。 – 2014-09-26 20:16:09

+0

您需要確定哪一列和哪一行 – barryleajo 2014-09-26 20:19:19

+0

爲什麼我需要這樣做?我想取消隱藏和取消所有這些。 – 2014-09-26 20:21:14

0
With ActiveSheet 
    .AutoFilterMode = False 
    .Cells.EntireRow.Hidden = False 
    .Cells.EntireColumn.Hidden = False 
End With