アプリ版:「スタンプのみでお礼する」機能のリリースについて

最近、仕事でマクロを使うことがあり、エクセルのマクロについて教えてください。
元データからオートフィルタで抽出し、抽出したデータを別シートに張り付ける
というマクロは一般的なのでしょうか教えてください。
このような作業が多く発生します。みなさんのやり方を教えてください。

例------------------------
Sheet1のA列に都道府県名があり、B列からT列のセルにも文字があります。
A列から”東京都”を選び、抽出したデータのA列からT列をSheet2のA列からT列に張り付ける。
-------------------------

参考に、例として書き換えたマクロを記載します。XはSheet1のデータ数を変数としました。
よろしくお願いいたします。

Dim x as integer
x = Cells(1, 1).End(xlDown).row

Sheets("Sheet1").Select
ActiveSheet.Range("$A$1:$AC$1").AutoFilter Field:=1, Criteria1:="東京都"
Range("A1:T" & x).Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

A 回答 (4件)

No.3です。



もう一度質問文を読み返してみると・・・
A~T列のみをコピー&ペーストするのですね?
前回のコードはすべての列がコピー&ペーストされますので
↓のコードに変更してください。

Sub Sample2()
Dim lastRow As Long, myRng As Range, wS As Worksheet
Set wS = Worksheets("Sheet1")
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
Set myRng = Range(wS.Cells(1, "A"), wS.Cells(lastRow, "T"))
With myRng
.AutoFilter field:=1, Criteria1:="東京都"
.SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A1")
End With
wS.AutoFilterMode = False
End Sub

どうも失礼しました。m(_ _)m
    • good
    • 0

こんばんは!



Sheet1のA列はデータが連続している(途中に空白セルがない)というコトであれば

Sub Sample1()
Dim myRng As Range, wS As Worksheet
Set wS = Worksheets("Sheet1")
Set myRng = wS.Range("A1").CurrentRegion
With myRng
.AutoFilter field:=1, Criteria1:="東京都"
.SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A1")
End With
wS.AutoFilterMode = False
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0

データの中から東京の部分を別シートに抽出するわけですよね。


エクセルンには、フィルターオプションと云う機能があります。
詳しくは、こちらを
http://www.eurus.dti.ne.jp/yoneyama/Excel/filter …
マクロのコードも記録で得られますので便利です。
    • good
    • 0

オートフィルターのコードもありますが、検索条件が指定できるので、Select Caseを使用したほうが簡単と思いますけど…

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!