- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAオートフィルターの使い方)
VBAオートフィルターの使い方
このQ&Aのポイント
- 情報_test.xlsに存在する氏名をキーワードとして抽出し別のファイルに貼り付ける操作をAutoFilterを使用して実行コードを記述しました。
- filterまでは機能するようですが、別のファイルに貼り付けるところがうまく機能していないようです。
- 実行させるとエラーにはならず、貼り付け先シートが空白のままになっています。どこに間違いがあるのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#149523
回答No.1
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy~ だと、Range("A1")がWorkbooks("情報_高橋.xls")のシートのA1ということになるらしいので直す。 Workbooks("情報_test.xls").Worksheets("情報入力").Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy 蛇足 このような問題がおきるので下のようにオブジェクトを明示的に確保したほうがよいと思う。 Dim ws_test As Worksheet Dim wb_Takahashi As Workbook Set wb_Takahashi = Workbooks.Open("S:¥情報入力ファイル¥情報_高橋.xls") Set ws_test = Workbooks("情報_test.xls").Worksheets("情報入力") ws_test.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ wb_Takahashi.Worksheets("情報").Range("A1") ActiveSheet.Unprotectとかもどれがアクティブなのかよく分からないので明示的に書く。 最後にメモリを開放をしておく Set ws_test = Nothing Set wb_Takahashi = Nothing
お礼
ご指摘のとおりコードを修正したところうまく動いてくれました。ありがとうございました。