
エクセルで別ブックで作成してあるカレンダーから、稼働日を判断して指定した期間の日付をオートフィルターを使って抽出したいのですが、うまくいきません。
このようなコードを記述しましたが、別ブックでオートフィルターを使用する事はできるのでしょうか?
Dim book1 As Workbook '変数book1をワークブック型で宣言
Dim book2 As Workbook '変数book2をワークブック型で宣言
Dim today As Date
Set book1 = Application.ActiveWorkbook 'アクティブになっているブックをbook1へセット
Application.ScreenUpdating = False '画面の更新を止める
'↓アドレスのブックを開く事までbook2にセット(ReadOnly:=Trueで読み込み専用)
Set book2 = Application.Workbooks.Open("\\sv\C1\\稼働日カレンダー.xls", ReadOnly:=True)
today = Date
maxdate = cdate("2014/3/3")
' book2.Worksheets("DATA").Cells.Copy Destination:=book1.Worksheets("Sheet1").Range("A1")
'----オートフィルタでデータを抽出
With book2.Worksheets("Sheet1").Range("A1").CurrentRegion
.AutoFilter
.AutoFilter Field:=1, Criteria1:=">=" & today, Operator:=xlAnd, Criteria2:="<=" & maxdate
' .AutoFilter Field:=2, Criteria1:="=" & 1
'----抽出データをコピー&貼り付け
.Copy ActiveSheet.Range("A" & maxrow)
.AutoFilter
End With
' Range("A1").Select
Application.ScreenUpdating = True
Set book1 = Nothing '変数book1を開放
book2.Close SaveChanges:=False 'book2を閉じる(SaveChanges:=Falseで保存せずに終了)
Application.ScreenUpdating = True '画面の更新を再開する
Set book2 = Nothing '変数book2を開放
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
あとね、ペーストが無いよ。
copyしただけじゃダメ。クリップボードへコピーした「内容」をどこかに「貼付」しないと。
Endwithの次行がソレだったんだろうけど。
再度、「マクロの記録」でコードを自動生成させたほうが良さそう。
No.1
- 回答日時:
まず、option Explicitを書く習慣着ける。
maxdateは何でどこで宣言した?book1は不要。自ブックは ThisWorkbook でOK
さらに使わないまま、Nothingに行きついてる。Endwithの次行のRange(”A1”)でしょ。
なぜコメントアウトしたの?
ScreenUpdating=Falseは最後で良い。F8キー押下のステップ実行でデバッグしてから
bin-chan様。
有難うございました!なんとかできました!
すみません。
このコーディングは、全体の一部だったので、宣言部分等は不完全でした。
時間がなかったので、とりあえずで中途半端なものを書いてしまい申し訳ありませんでした。
次に利用する際は、しっかりしたものを書くようにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 別ブックからシートのコピー 3 2022/04/01 20:07
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
このQ&Aを見た人はこんなQ&Aも見ています
-
マクロ オートフィルタの検索値を所定のセルから参照
Excel(エクセル)
-
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには(第2弾)
Excel(エクセル)
-
-
4
エクセルで、抽出したデータだけを別ファイルにしたい
Excel(エクセル)
-
5
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
6
VBA 前月の月の名前でブックを保存
その他(Microsoft Office)
-
7
Excelオートフィルタで複数のセルの値を参照して抽出したい
Excel(エクセル)
-
8
エクセルで抽出して別ファイル作成するのをマクロを作成したいのですが。
Excel(エクセル)
-
9
エクセルのフィルターを複数シートに連動させたいです。 エクセルファイルに15シートあります。 そのう
Excel(エクセル)
-
10
Excel VBAでのオートフィルターについて教えてください。 日付データからフィルターで今日を起点
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
VBAで別ブックのシートを指定し...
-
VBA 実行時エラー 2147024893
-
VBA コードを実行すると画面が...
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
-
vbaでvbaProjectのパスワード解...
-
【ExcelVBA】zip圧縮されたCSV...
-
Excelマクロ 該当する値の行番...
-
【前回の続きです、ご教示くだ...
-
[Excel]ADODBでNull変換されて...
-
フォルダ内の全てのファイルに...
-
ACCESSVBA からExcelの他ブック...
-
【マクロ】アクティブセルにブ...
-
VBAで複数のブックを開かずに処...
-
Excelブックがアクティブになっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
VBAで別のブックにシートをコピ...
-
VBAで別ブックのシートを指定し...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】zip圧縮されたCSV...
-
[Excel]ADODBでNull変換されて...
-
【ExcelVBA】インデックスが有...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
vbaで他のブックに転記したい。...
-
エクセルマクロで、他ブックか...
-
vbaでvbaProjectのパスワード解...
-
VBA 実行時エラー 2147024893
-
【マクロ】違うフォルダにある...
おすすめ情報