2016-12-04 7 views
0

次のコードを使用してExcelワークブックを開き、列をフィルタリングして再度閉じて、変更を保存しようとしています。VBAオープンブック、フィルタを適用し、ブックを閉じますか?

HERESに私のコードが、何らかの理由で、それはフィルタを適用されていません。

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(path as String)? – Jbjstam

+0

あなたのコードは実際には 'OtherBook'ステートメントで動作しますか? – user3598756

答えて

0

「選択」はアクティブなワークブックで機能しますが、おそらく少し曖昧です。範囲をより正確に参照しようとしている可能性があります。これに

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

あなたの提案に感謝します。しかし、このdoesntは動作しているようです。フィルタを使用した列Aのヘッダーが行6から始まりますが、これが問題になる可能性がありますか?私は細胞(1,1)を細胞(6,1)に変更しました - これは正しいのですか? –

+0

ああ、そうだよね(6,1).. – David

+0

それでもうまくいきません:( –

関連する問題