エクセルで別ブックで作成してあるカレンダーから、稼働日を判断して指定した期間の日付をオートフィルターを使って抽出したいのですが、うまくいきません。
このようなコードを記述しましたが、別ブックでオートフィルターを使用する事はできるのでしょうか?
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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAのオートフィルターで該当行がない場合に処理を止めたい
Excel(エクセル)
-
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
マクロ オートフィルタの検索値を所定のセルから参照
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
Excel VBAでオートフィルタで抽出した列データを別シートの最終行にコピーするには
Visual Basic(VBA)
-
6
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
7
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
8
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
9
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
10
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
11
VBAでセル値からフォルダ名を取得するコードについて
Excel(エクセル)
-
12
Excelオートフィルタで複数のセルの値を参照して抽出したい
Excel(エクセル)
-
13
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
14
エクセルでエラーが出て困っています。
Excel(エクセル)
-
15
VBAで文字列を数値に変換したい
Excel(エクセル)
-
16
エクセルで、抽出したデータだけを別ファイルにしたい
Excel(エクセル)
-
17
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
18
特定の複数のシートに同じ処理をさせたい
Excel(エクセル)
-
19
オートフィルタで抽出したデータを別シートの最終行に追加させたい。
Excel(エクセル)
-
20
参照するファイルをワイルドカードで指定したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAが途中で止まります
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBAで別ブックのシートを指定し...
-
ワイルドカード「*」を使うとう...
-
VBS Bookを閉じるコード
-
VBAで複数のブックを開かずに処...
-
エクセルのマクロについて教え...
-
VBA コードを実行すると画面が...
-
ADOで複数のBookから抽出
-
ExcelVBA:すでに開かれている...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
-
Excelファイルを開くとき、読み...
-
Excelブックがアクティブになっ...
-
vbaで他のブックに転記したい。...
-
【ExcelVBA】zip圧縮されたCSV...
-
エクセルのマクロについて教え...
-
Excelマクロ 該当する値の行番...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
ワイルドカード「*」を使うとう...
-
【ExcelVBA】VBA実行でダイアロ...
-
ExcelのVBAです。フォルダ内の...
-
フォルダ内の全てのファイルに...
-
VBA コードを実行すると画面が...
-
VBA 別ブックからコピペしたい...
-
VBAで別ブックのシートを指定し...
-
VBS Bookを閉じるコード
-
vbaでvbaProjectのパスワード解...
-
【VBA】全シートの計算式を全て...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】zip圧縮されたCSV...
-
複数のエクセルブックをひとつ...
-
VBSでExcelのオープン確認
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
おすすめ情報