2016-12-04 120 views
0

我想用下面的代碼打開一個excel工作簿,過濾一列並再次關閉它 - 保存更改。Vba打開工作簿,應用過濾器並關閉工作簿?

繼承人我的代碼,但由於某種原因,它不使用過濾器:

DisplayAlerts = False 
OtherBook.Open 
Selection.AutoFilter Field:=1, Criteria1:="49" 
OtherBook.Close SaveChanges:=True 

我的工作簿看起來是這樣的:在他們的頭

A柱和柱已經應用於B過濾器/接通。

Column A  Column B <----(Filters On) 
49   Dog 
48   Cat 
49   Dog 
47   Cat 
49   Dog 
45   Dog 

請問有人可以告訴我我要去哪裏嗎?

+0

Otherbook.Activate()? Application.Documents.Open(路徑爲字符串)? – Jbjstam

+0

你的代碼是否真的與'OtherBook'語句一起工作? – user3598756

回答

0

'Selection'適用於活動工作簿,它可能有點含糊,也許嘗試更精確地引用範圍。改變這一行:

Selection.AutoFilter Field:=1, Criteria1:="49" 

要這樣:

Workbooks(OtherBook).ActiveSheet.Cells(1, 1).AutoFilter Field:=1, Criteria1:="49" 

或者這樣:

Workbooks(OtherBook).ActiveSheet.Cells(1, 1).Resize(1, 2).AutoFilter Field:=1, Criteria1:="49" 
+0

感謝您的建議。這似乎並沒有工作。我的過濾器列A的標題從第6行開始,這可能是問題嗎?我已將單元格(1,1)更改爲單元格(6,1) - 是嗎? –

+0

啊我看,是的,(6,1).. – David

+0

那麼它仍然不會工作:( –