[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別シートの2列を比較して重複してないデータを最終行に追加する』(to)
sheet1とSheet2のA・B列を比較して重複していない行をsheet1に追加したいです。
マクロでなんとかしたいと思ったのですが全くの初心者です。
sheet1
A B C D・・・・・・P
1 区分 番号 金額 年度
2 あ 15 200 18
3 い 10 150 24
4 あ 22 250 16
5 う 10 230 18
sheet2
A B C D・・・・・・P
1 区分 番号 金額 年度
2 あ 15 200 18
3 い 10 150 24
4 あ 22 250 16
5 う 14 200 19
両シートの区分と番号を比較して両方重複していないデータ上記でいうと
sheet2の5行目をsheet1の6行目に追加していきたいのです。
分かりづらい説明で申し訳ありませんがどうかご教授をお願いします。
< 使用 Excel:Excel2010、使用 OS:WindowsVista >
>両シートの区分と番号を比較して両方重複していないデータ上記でいうと
~~~~~~~~
結果からいえば、下線の「両方」は「シート1とシート2」になると思いますが
シート2の5行目と同じデータが、シート2のたとえば10行目にあるかもしれない
という意味で「両方重複していない」という表現なのでしょうか??
(稲葉) 2014/09/16(火) 07:34
両シートの区分と番号を比較して両方重複していないデータ上記でいうと
~~~~~~~~
の「両方」は「区分と番号」の事を指します。つまり sheet2の区分&番号がSheet1の区分&番号に
存在するか?と事です。 sheet1に存在しないsheet2の区分番号の行をsheet1の最終行に追加したいのです。
この説明でイメージできるでしょうか。本当に説明がヘタで申し訳ないです。
(to) 2014/09/16(火) 08:08
Sub test()
Dim i As Long
Dim j As Long
Dim iMax As Long
Dim jMax As Long
Dim iFlag As Long
With Sheets("Sheet2")
iMax = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To iMax
iFlag = 0
jMax = Cells(Rows.Count, "A").End(xlUp).Row
For j = 2 To jMax
If Cells(j, "A").Value = .Cells(i, "A").Value And _
Cells(j, "B").Value = .Cells(i, "B").Value Then
iFlag = j
Exit For
End If
Next j
If iFlag = 0 Then
.Rows(i).Copy Cells(jMax + 1, "A")
End If
Next i
End With
End Sub
(???) 2014/09/16(火) 09:51
(to) 2014/09/16(火) 10:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.