エクセルで完全に一致した列のみ抽出する
先週と今週のデータ変更を比較し、変更があった場合、先週と今週のデータ両方とも抽出する、というVBAを書いています。
手順としては、
1.sheet"先週"とsheet"今週"のセルをひとつひとつ比較して、違った場合に色づけをする。
2.sheet"差分"に先週、今週両方のデータをコピペする。
3.IDが2ずつある状態で、IDごとにオートフィルタをかけ、B2とB3,C2とC3、、以下Z2とZ3まで上下で比較し、完全に一致だったら、AA列に"重複"と入力する。
最後の列まで行ったら、再度オートフィルタをかけなおし、AA列の"重複"のみ削除する。
というものです。
3の部分は以下のように書きました。
With Worksheets("差分")
.Range("A:Z").AutoFilter Field:=1, Criteria1:="1"
If Range("B2").value = Range("B3") Then
.Range("AA2").Value ="重複"
.Range("AA3").Value ="重複"
Else
.Range("AA2").Value =xlNone
.Range("AA3").Value =xlNone
.AutoFilterMode = False
.Range("A:Z").AutoFilter Field:=27, Criteria1:="重複"
.autofilter.range.offset(1).delete shift:=xlshiftup
End With
上記の最初の抽出条件を1~100(増える予定)、
B2,B3,AA2,AA3を抽出条件によって変更したいのですが、
どうしたらいいのでしょうか。
ためしに
"B2"と"B3"を、Range(cells(2,2)), Range(cells(3,2))にしたら変更しやすいかと思いましたが、これだと1004エラーとなってしまいました。
最初の抽出条件は 抽出条件をiとし,For i = 1 to 100 という風に書いていますが、比較セルへの変更方法がわからずとまっています。
いい方法を教えてください。
ちなみにexcel 2000です。
お礼
詳しい解説HPのご紹介ありがとうございます。 いままでフィルターの使い方がわからなかったのですが、 お陰様で、この機会にフィルターの使い方を一つ知ることが出来ました。 条件指定で抽出することが出来ました。 ありがとうございました。