教えて!gooにおける不適切な投稿への対応について

vba初心者です。
ネットで「vba複数条件一致」で検索して色々なものを見て自分なりにやってはいるのですが、どうしても思い通りにいきません。
お助けいただけると嬉しいです。

sheet1にデータがあります。sheet1のA列とB列がsheet2の(B2とC2)と一致した場合のみ、その行のA列~D列をコピーしてsheet2に貼り付けを行います。sheet1の値は寸法・材料・日付の順に並んでおり、間に他の寸法が混ざることはありません。
貼付はsheet2のB列の6行目から行いたいです。行数は6行目から20行目までです。21行目以上になることはありません。
sheet2の表はフォントの大きさ等を予め調整しているので、貼り付けは値のみとしたいです。
添付画像の左側がsheet1で右側がsheet2です。
添付画像の場合、sheet2の「B6~E8」の部分がsheet1からコピーしたデータとなります。

「vba 2つの条件が一致したらコピーして」の質問画像
gooドクター

A 回答 (2件)

こんばんは!



関数でもできそうですが、VBAでの方法をご希望なのですよね。
一例です。
標準モジュールにしてください。

Sub Sample1()
Dim i As Long, lastRow As Long
Dim cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
lastRow = wS.Cells(Rows.Count, "B").End(xlUp).Row
If lastRow > 3 Then
Range(wS.Cells(6, "B"), wS.Cells(lastRow, "E")).ClearContents
End If
cnt = 5
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(i, "A") = wS.Range("B2") And .Cells(i, "B") = wS.Range("C2") Then
cnt = cnt + 1
wS.Cells(cnt, "B").Resize(, 4).Value = .Cells(i, "A").Resize(, 4).Value
End If
Next i
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
標準モジュールで試してみたら無事うまくいきました。

ネットで調べながら少しずつ勉強してはいるのですが、まだまだうまくいかないことの方が多いです。
毎週末ネットで検索しながら試行錯誤していてうまくいかなかったことが、こんなに早く解決して驚いています。

本当にありがとうございました。

お礼日時:2018/05/11 21:53

Sub 抽出()



Dim ws1, ws2, Sunpo, Zairyo
Dim StartRow, EndRow, tmpRow

'sheet名を変えている場合は適宜変えてください
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
'シート2に指定されている抽出寸法と材料です
Sunpo = ws2.Cells(2, "B")
Zairyo = ws2.Cells(2, "C")

StartRow = 2
EndRow = ws1.Cells(Rows.Count, "A").End(xlUp).Row
tmpRow = 6

For i = StartRow To EndRow
If (ws1.Cells(i, "A") = Sunpo) And (ws1.Cells(i, "B") = Zairyo) Then
ws2.Cells(tmpRow, "B") = Sunpo
ws2.Cells(tmpRow, "C") = Zairyo
ws2.Cells(tmpRow, "D") = ws1.Cells(i, "C")
ws2.Cells(tmpRow, "E") = ws1.Cells(i, "D")
tmpRow = tmpRow + 1
End If
Next

End Sub
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
標準モジュールで実行したらうまくいきました。

同じ結果を導くのに、いろいろなプログラムがあるなと感心させられます。
教えてgooの回答者さんは親切な方ばかりでとても感謝です。

本当にありがとうございます。

お礼日時:2018/05/11 22:04

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング