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で5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
-
4
オートフィルタのリストを順番に印刷できるマクロ
Windows Vista・XP
-
5
VBA オートフィルタで抽出したものを連続貼り付け
その他(Microsoft Office)
-
6
Excelオートフィルタで複数のセルの値を参照して抽出したい
Excel(エクセル)
-
7
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
8
VBA 空白行に転記する
Visual Basic(VBA)
-
9
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
10
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
11
Excel VBA オートフィルタの結果をコピーして貼り付けたい(空白行も含める)
Visual Basic(VBA)
-
12
難問 VBA 今日の日付より前に対するイベント処理
Visual Basic(VBA)
-
13
マクロ オートフィルタの検索値を所定のセルから参照
Excel(エクセル)
-
14
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
17
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
18
Excel フィルタをかけた後の各項目を、自動的に印刷する方法は?
その他(Microsoft Office)
-
19
エクセルでエラーが出て困っています。
Excel(エクセル)
-
20
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
複数シートからデータを拾って...
-
シート削除して同名シート追加...
-
excelの不要な行の削除ができな...
-
エクセルのカメラ機能について
-
VBAで CTRL+HOMEの位置へ移動...
-
(VBAにて)日付でデータを抽出す...
-
EXCEL 複数行のデータを1行にま...
-
EXCELで2つのファイルから重複...
-
他のシートの一番下の行データ...
-
【エクセル」 特定のセルで条件...
-
別々のシートの表をピボットテ...
-
Excelで日付変更ごとに、自動的...
-
【マクロ】同じフォルダ内にあ...
-
エクセルで複数行のデータを1列...
-
エクセル マクロ "特定の日付...
-
EXCEL の表を一行ずつシートに...
-
エクセルで名簿を50音で切り分ける
-
Excelでテーブルを2次元の表に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
excelの不要な行の削除ができな...
-
Excelで日付変更ごとに、自動的...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
EXCELで2つのファイルから重複...
-
EXCEL 複数行のデータを1行にま...
-
他のシートの一番下の行データ...
-
オートフィルタで抽出したデー...
-
エクセルのカメラ機能について
-
(VBAにて)日付でデータを抽出す...
-
エクセルで名簿を50音で切り分ける
-
別々のシートの表をピボットテ...
-
Excel 売上管理シートに入力し...
-
Excelマクロ 差分抽出の方法が...
-
EXCEL の表を一行ずつシートに...
-
エクセルVBAで、特定文字から始...
おすすめ情報