
No.1ベストアンサー
- 回答日時:
こんにちは
マクロの記録で作成した一例です。コメントを読んで、適当にアレンジして下さい。
Option Explicit
Sub SampleMacro1()
'
' SampleMacro1 Macro
' マクロ記録日 : 2009/3/13
'
'フィルター部分
Selection.AutoFilter Field:=1, Criteria1:="=ほげほげ", Operator:=xlAnd
'可視セルの選択
Selection.SpecialCells(xlCellTypeVisible).Select
'選択範囲のコピー
Selection.Copy
'コピー先のシート&セル選択
Sheets("Sheet2").Select
Range("A1").Select
'ペースト
ActiveSheet.Paste
'コピー元シートに戻りコピー状態解除
Sheets("Sheet1").Select
Application.CutCopyMode = False
Range("A1").Select
End Sub
外してたら、ごめんなさい
この回答への補足
Sub 顧客抽出コピペ()
Sheets("売上帳").Select
Range("B6").AutoFilter Field:=2, Criteria1:=Range("F2").Value
Range("B7:B1000").Select
Selection.Copy
Sheets("個別売上帳").Select
Range("B7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("売上帳").Select
Range("E7:J1000").Select
Selection.Copy
Sheets("個別売上帳").Select
Range("C7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
という風に作ってみたのですが、2行目の『Range("B6")』
の部分はどういう意味なのでしょうか?
B6でなくてもB7とかB8とかでも同じように動くのですが?
あと、上記のコードは今のところエラーなどは出ていないのですが、
何か問題が出そうな箇所はあるでしょうか?
ちょっと心配なのは、
『Selection.SpecialCells(xlCellTypeVisible).Select』
というコードを使っていないので、いらないところまで含まれて
コピーされることがあるのでしょうか?
No.4
- 回答日時:
こんにちは
#1です。質問者さんの意図するところとは、やはり外していたようです。
該当範囲を選択した後にマクロ記録で出来たプログラムでした。
>という風に作ってみたのですが、2行目の『Range("B6")』
>の部分はどういう意味なのでしょうか?
>B6でなくてもB7とかB8とかでも同じように動くのですが?
肝心のシートを見ていないので、完全に想像ですが B6 セルは、項目セルなのではないですか?
普通、フィルターをかけるときはデータの上ではなく項目セルに掛けますよね。
従って、B7、B8セルは、データセルだと思いますので、同じように動いているように見えても「対象データが減っている」状態ですから抽出漏れが発生することが考えられます。
>『Selection.SpecialCells(xlCellTypeVisible).Select』
>というコードを使っていないので、いらないところまで含まれて
>コピーされることがあるのでしょうか?
このコードだけでは、そのようにはなりません。例えば、以下のようにしても B1000 までセレクトされていることが分かると思います。
※Selection.Address に選択されたセルアドレスが入っています。
Range("B6").AutoFilter Field:=2, Criteria1:=Range("F2").Value
Range("B7:B1000").Select
Selection.SpecialCells(xlCellTypeVisible).Select
MsgBox Selection.Address
下記のようにするとB6セルに隣接しているデータのあるセル全体を選択するので未使用のセルを選択しません。
Range("B6").CurrentRegion.Select
Selection.AutoFilter Field:=2, Criteria1:=Range("F2").Value
Selection.SpecialCells(xlCellTypeVisible).Select
MsgBox Selection.Address
しかし、質問者さんは、部分部分を分けてコピーして合体したいと思ってるようですので、そのままでは使えないですね m(__;m
外していたようで、ごめんなさい。
No.3
- 回答日時:
シート1のセルA2からA10に「あ」から「お」のデータが入っているとします。
(セルA1は見出し)フィルターで「あ」を抽出し、表示されている行をシート2のセルA1へ貼り付けます。
With Worksheets("Sheet1")
With .Range("A1:A10")
.AutoFilter Field:=1, Criteria1:="あ"
.Copy Worksheets("Sheet2").Range("A1")
End With
.AutoFilterMode = False
End With
No.2
- 回答日時:
先ほどの続きですね。
フィルター結果をSheet2のC3から値のみ貼り付ける場合
'------------------------------
Sub 顧客抽出()
Range("B4").AutoFilter Field:=2, Criteria1:=Range("F2").Value
'Sheet2のC3から貼り付け
Range("A4").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Sheets("Sheet2").Range("C3").PasteSpecial xlValues
'コピーモード解除
Application.CutCopyMode = False
End Sub
'------------------------------------
ただ先の質問も今回の質問もマクロ記録をとってみればそこに解答が。。(^^;;;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでフィルターした値を...
-
エクセルの複数のセルを一括で...
-
エクセルでセルを10個分くらい...
-
Excel セルの値を数値と認識しない
-
excel セルに打ち込み 違うセル...
-
ワードの表のセル 網掛けのコピー
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
=SUBTOTAL に =COUNTIF の機能...
-
エクセルで既に入力してある文...
-
エクセルオートフィルタで余計...
-
Excel上でのデータ数字が連番で...
-
複数の文字列のいずれかが含ま...
-
エクセルでセルに何も入力して...
-
空白でないセルの値を返す方法...
-
excelでSUBTOTAL関数を設定した...
-
IF関数で0より大きい数値が入力...
-
SUMに含まれる範囲から特定のセ...
-
EXCELで、結合されたセルに連続...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの複数のセルを一括で...
-
エクセルでセルを10個分くらい...
-
エクセル空白以外の文字を抽出
-
ワードの表のセル 網掛けのコピー
-
エクセルVBAでフィルタ抽出...
-
Excel セルの値を数値と認識しない
-
エクセルのマクロ
-
エクセルで表示行の値だけの合...
-
複数の離れた選択範囲をコピー...
-
条件を満たすセルをカウントする。
-
エクセル2000のVBAのcutメゾット
-
Excelでセルの内容を画像で貼り...
-
Excel 列の書式を元に戻すマクロ
-
EXCEL VBA 複数セルのコピー
-
WEB上の文章 ⇒ EXCEL...
-
エクセルのマクロについて
-
エクセル2007で総当り表を作り...
-
ExcelのVBA セル内の文字書き換...
-
エクセル もしくは、ワードでき...
-
セルの書式設定(選択範囲内で中...
おすすめ情報