
VBA初心者です。
オートフィルタしたデータを同じブック内の「抽出」という名前のシートに貼り付けたいのです。シートは月毎に増える予定ですので、シートを選びフィルタをした結果が全て抽出シートに反映されるようにしたいです。
【環境】Excel2010
【データの中身】
・列番号2に項目名が入っている。B~Nまで
・オートフィルタはF列にある「対応中」で実施。
・シート名は201501,201502という感じで増えていく。
【やりたいこと】
・それぞれの月別シートにあるボタンクリックで、対応中の行のみ「抽出」シートに連続で貼り付けられること。
連続で、、というのがどうしてもできないです。抽出シートのデータが入っている最終行を取得しないと次のシートが貼り付けられないのまでは理解できるのですが、その場所を指定し貼り付けるやりかたがわからないのです。
以下、私が記載コード。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Private Sub CommandButton1_Click()
Dim SheetName As String
Dim LastRow As Long
Dim EndRow1 As Long
Dim EndRow2 As Long
SheetName = ActiveSheet.Name
' アクティブシートの日時列内にある「対応中」になっているものをフィルタリングする。
Worksheets(SheetName).Range("b2").AutoFilter Field:=5, Criteria1:="対応中"
EndRow1 = Worksheets(SheetName).Range("b" & Rows.Count).End(xlUp).Row
EndRow2 = Worksheets("抽出").Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets(SheetName).Range("b2:n" & EndRow1).Copy Worksheets("抽出").Range(EndRow2, 1)
End Sub
つっこみどころ満載だと思います。勉強不足です。
どうぞ、どこが悪いのかまた参考になるサイトがあるのでしたら教えてください。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは。
>対応中の行のみ「抽出」シートに連続で貼り付けられること。
>連続で、、というのがどうしてもできないです。
当面の問題としては、
最後の行の
Worksheets(SheetName).Range("b2:n" & EndRow1).Copy Worksheets("抽出").Range(EndRow2, 1)
のRange(EndRow2, 1)は、Range("A1" & EndRow2) か、Cells(EndRow2, 1) ですね。
RangeとCellsは、2つ出てきてややこしいですね。もともと、開発当初はCellsだけだったそうですが、Lotus123を取り込む関係で、2つになったようです。どちらかに統一したほうか分かりやすいかもしれません。
なお、
Worksheets(SheetName)
は、ボタンを直接クリックする関係で、あえて書くなら、ActiveSheet のことでしょうね。
また、ボタンは、ActiveX コントロールで、シートモジュールと決まってしまいますから、本来は、なくてもよいわけです。
例:
Range("b2:n" & EndRow1).Copy Worksheets("抽出").Range(EndRow2, 1)
それから、
If EndRow2 > 1 Then
ActiveSheet.Range("b3:g" & EndRow1).Copy Worksheets("抽出").Cells(EndRow2, 1)
Else
ActiveSheet.Range("b2:g" & EndRow1).Copy Worksheets("抽出").Cells(EndRow2, 1)
End If
としてあげれば、項目行が途中に入らなくなりますね。今のところは、このぐらいでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 抽出結果を別シートに貼り付ける 2 2022/07/09 22:59
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAでオートフィルタで抽出した列データを別シートの最終行にコピーするには
Visual Basic(VBA)
-
VBA オートフィルタで抽出したものを連続貼り付け
その他(Microsoft Office)
-
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
-
4
VBA別シートの最終行の下行へ貼り付けされるようにしたいです。
その他(Microsoft Office)
-
5
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
6
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
7
VBA・オートフィルタで抽出・貼り付けをFor~Nextで実現するには?
Excel(エクセル)
-
8
【マクロ】対象データを別シートの最終行の下へ貼り付けをしたい。
Excel(エクセル)
-
9
マクロを特定の複数シートで実行する方法
Excel(エクセル)
-
10
【VBA】特定の文字が入っている行の一部を抽出して別シートコピーするには
Visual Basic(VBA)
-
11
VBA オートフィルター繰り返し
Visual Basic(VBA)
-
12
複数指定セルの可視セルのみを別シートに転記するVBAについて
Visual Basic(VBA)
-
13
エクセルVBAで、ある文字を含んでいたら別シートに抽出したい
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
Excel VBA A列が特定の値以外の場合、その行を削除
Excel(エクセル)
-
16
VBA Shapes コピーと名前
Excel(エクセル)
-
17
EXCELのVBA-フィルタ抽出後のセル選択方法
Visual Basic(VBA)
-
18
Excelオートフィルタで複数のセルの値を参照して抽出したい
Excel(エクセル)
-
19
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
20
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
複数シートからデータを拾って...
-
Excelで日付変更ごとに、自動的...
-
シート削除して同名シート追加...
-
複数シートのデータを行列を入...
-
エクセルVBAで、特定文字から始...
-
エクセル VBA VLOOKUP
-
Excel 売上管理シートに入力し...
-
他のシートの一番下の行データ...
-
別々のシートの表をピボットテ...
-
トランジスタの選び方
-
ピボットテーブルのデータソー...
-
オートフィルタで抽出したデー...
-
コンボボックスの参照先(ListF...
-
時間帯の重複を除いた集計について
-
エクセルで1つのシートを拠点...
-
エクセル マクロ "特定の日付...
-
EXCEL の表を一行ずつシートに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
複数シートからデータを拾って...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
Googleスプレッドシートフィル...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
エクセル 縦に長い表の印刷時...
-
他のシートの一番下の行データ...
-
EXCELで2つのファイルから重複...
-
EXCEL の表を一行ずつシートに...
-
【エクセルマクロ】複数シート...
-
【マクロ】同じフォルダ内にあ...
-
時間帯の重複を除いた集計について
-
Excel 売上管理シートに入力し...
-
エクセル マクロ "特定の日付...
-
ユーザーフォームで別シートを...
-
エクセルで名簿を50音で切り分ける
おすすめ情報