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

エクセル:シート1で、B列に有る同じ値を 抽出(例 3)して、行A~H全てをシート2へ貼り付けたいです
     
Sheet 1
      A   B   C   D   E   F   G   H
    1 1  5   リンゴ 100 
    2 1  8   リンゴ 150
    3 1  6   リンゴ 180
    4 5  7   梨
    5 6  3   ぶどう 
      6  7  3 みかん

   
Sheet 2

A   B   C   D   E   F   G   H
    1  6   3  ぶどう 
   2  7  3 みかん



宜しくおねがい致します

A 回答 (3件)

こんばんは!



質問文を拝見すると1行目からデータがあるように書いてありますね?
1行目が項目行であれば、単純にオートフィルタで対応できると思うのですが・・・

一例です。
標準モジュールにしてください。

Sub Sample1()
Dim i As Long, cnt As Long, lastCol As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(i, "B") = 3 Then
cnt = cnt + 1
lastCol = .Cells(i, Columns.Count).End(xlToLeft).Column
wS.Cells(cnt, "A").Resize(, lastCol).Value = .Cells(i, "A").Resize(, lastCol).Value
End If
Next i
End With
End Sub

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

No.1です。



>行A~H全てをシート2へ貼り付けたいです
でしたね。
どうも失礼しました。
前回のコードは消去し↓のコードにしてください。

Sub Sample2()
Dim i As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(i, "B") = 3 Then
cnt = cnt + 1
.Cells(i, "A").Resize(, 8).Copy wS.Cells(cnt, "A")
End If
Next i
End With
End Sub

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

もし、7行目にB列が5のデータ


  A B  C
7 8 5 梨 ・・・・
があれば、5も出力するのですか。
以下のように
A  B C D E F
1 5 リンゴ
6 3 ぶどう
7 7 みかん
8 5 梨
    • good
    • 0
この回答へのお礼

一応、1~19までをシート毎に仕訳みたいにして行くのでマクロかなぁと思ってましたが出来なく
更に800~900行のエクセルがいくつもあり、気が遠くなってましたが、助かりました。

ありがとうございます

お礼日時:2017/10/21 23:08

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