商品の納期や、集金日などが一覧になっている【一覧】シートがあります。
他に集金月別にシート【4月】【5月】…と一年分12シートあります。
一覧シートは、空欄セルに店舗名や納期などを随時入力していき、データは増えていくのみです。
下記のマクロでデータの抽出・抽出結果のコピー・貼り付けを行っています。
Sub Macro4()
'
' Macro4 Macro
' 集金月で抽出
Dim myRow1 As Long, myRow2 As Long
myRow1 = Sheets("一覧").Range("B65536").End(xlUp).Row
myRow2 = Sheets("4月").Range("B65536").End(xlUp).Row
If myRow2 >= 3 Then
★ Sheets("4月").Range("A3:P" & myRow2).ClearContents
End If
Sheets("一覧").Range("A3:P" & myRow1).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("G1:H2"), CopyToRange:=Range("A4:P4"), Unique:=False
End Sub
一覧以外のシート全てに、上記マクロを登録した【抽出】ボタンを設置し
G1:H1セルには集金日と検索項目のタイトル
G2セルには>=4/1、H2セルには<=4/30
抽出ボタンをクリックして一覧から取得しています。
マクロは、説明が載っているHPからの独学なのでどう応用すれば良いのかがわかりません。
一覧に追加入力し、4月シートに4月分抽出。次に5月シートに5月分抽出とすると4月シートの抽出結果が消えてしまいます。
そこで、★で指定している4月シートではなく、現在選択している”シート”としたいのですが、どのように記述すればよいかわかりません。
自分が分からない事を、どう検索してよいかも分からなくなってきたので、どうかアドバイスお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
AcName = ActiveSheet.Name
Worksheets(AcName).Range ....
とすればよいことですが、ちょっと良く分からないところがありますが、おそらくは、登録先の問題で、「標準モジュール」に入れないといけない、というところだと思います。
'標準モジュール
Sub DataCopyMacro()
Dim myRow1 As Long
Dim myRow2 As Long
Dim AcName As String
' 集金月で抽出
AcName = ActiveSheet.Name
myRow1 = Worksheets("一覧").Range("B65536").End(xlUp).Row
myRow2 = Worksheets(AcName).Range("B65536").End(xlUp).Row
If myRow2 >= 3 Then
Worksheets(AcName).Range("A3:P" & myRow2).ClearContents
End If
Worksheets("一覧").Range("A3:P" & myRow1).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Worksheets(AcName).Range("G1:H2"), _
CopyToRange:=Worksheets(AcName).Range("A4"), _
Unique:=False
End Sub
コントロールツールのコマンドボタンなら、このようになります。
Private Sub CommandButton1_Click()
Call DataCopyMacro
End Sub
出来ました!
Sheets(ActiveSheet) とか、 Sheets("ActiveSheet")
とかで、エラーばかりでした。
>AcName = ActiveSheet.Name
略せるのですね!本当に助かりました。ありがとうございます。
ボタンですが、フォームのボタンに登録しています。
1年分のシート、12枚それぞれにボタンを置き、ボタン1個づつにマクロを登録していました。
コントロールツールのコマンドボタン、使ってみます♪
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 前回質問の続きになりますが、下記マクロでシート1からシート2の抽出項目セルB3「りんご」とセルC2「 2 2022/12/02 17:37
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでエクセルシートを更新...
-
excelで、セル内に文字が入力さ...
-
【エクセル】シートのロックで...
-
エクセルの担当者別にシートを...
-
Excelのマクロで、開いた時に、...
-
エクセルで、2つのシートにある...
-
エクセルのシートを同時に行削...
-
仕事の引き継ぎでエクセルの習...
-
「24日の0時」って・・・
-
パソコンで購入したデーターが...
-
エクセルのチェックボックスを...
-
エクセルで最高値、最低値の日...
-
差し込み印刷に当日の日付が入...
-
エクセルでのセルをまたぐ文字...
-
「時間」、「期日」、「日付」...
-
日付の大小の表現
-
エクセルで数字から名前に変...
-
回覧板の日付について質問です...
-
Accessで、定型入力を使って年...
-
エクセル マクロ 名前を付けて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでエクセルシートを更新...
-
excelで、セル内に文字が入力さ...
-
エクセルのシートを同時に行削...
-
【エクセル】シートのロックで...
-
表示倍率を変更させない方法
-
エクセルで、2つのシートにある...
-
エクセルで別シート、または別...
-
エクセルの担当者別にシートを...
-
エクセルVBAで65536レコードを...
-
同一セルに入力規則のリストと...
-
仕事の引き継ぎでエクセルの習...
-
Excelのマクロで、開いた時に、...
-
エクセル表作成についてお分か...
-
Excelで、表に小計と合計を入れ...
-
シートを串刺しで抽出したいの...
-
マクロ!一覧から別シートへの抽出
-
ワードの差し込み印刷について
-
STAT VIEWが使えない!!!
-
エクセルで更新日時を表示したい。
-
エクセルシートの統合
おすすめ情報