[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2シートのデータ比較』(HARI)
どうかお力をお貸しください。
VBA初心者です。
2つのシートがあります。
Sheet1は最新のデータ情報、Sheet2は前回のデータ情報。
最新のデータには追加(行)されたデータや
セルの値が変更されたデータがいくつか存在します。
4000行以上のデータがあるので、
VBAで差分を見つけて色で判別できないかと思い
勉強しながら作成中です。
フィルターをかけていなければ
以下で問題なく処理が出来るのですが、
フィルターをかけてしまうと行番号が一致していないせいなのか
セル同士が一致していても色がついてしまいます。
何が原因なのか分かりません。
原因が分かる方がいらっしゃいましたら
コメント頂けないでしょうか?
+@でお願いが…
以下のVBA、Sheet1だけに色を付けているのですが、
Sheet2にも色を付ける場合、どこに入れればいいのでしょうか?
よろしくお願い致しますm(_ _)m
................................................................
Sub Macro1()
Dim myVal1, myVal2 Dim i As Long, j As Long, myCnt As Long
Application.ScreenUpdating = False
With Sheets("Sheet1") .Cells.Interior.ColorIndex = xlNone myVal1 = .Range("A1", .Range("O65536").End(xlUp)).Value End With
With Sheets("Sheet2") myVal2 = .Range("A1", .Range("O65536").End(xlUp)).Value End With
If UBound(myVal1, 1) >= UBound(myVal2, 1) Then myCnt = UBound(myVal2, 1)
Else myCnt = UBound(myVal1, 1) End If
For i = 1 To 9 For j = 1 To myCnt If myVal1(j, i) <> myVal2(j, i) Then Sheets("Sheet1").Cells(j, i).Interior.ColorIndex = 3 End If Next Next Application.ScreenUpdating = True End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Sheets("Sheet1").Cells(j, i).Interior.ColorIndex = 3 Sheets("Sheet2").Cells(j, i).Interior.ColorIndex = 3
これだと、条件付き書式で「=A1<>Sheet2!A1」とするのと同じかと思います。(Sheet2側の条件はSheet1!A1に変えるだけ)
一方だけ行の過不足って無いのでしょうか? 現状では、行が違うと不一致ですよね。 普通は、キーとなる列を対象にVLOOKUP等で一致する行を探し、これで値比較します。
マクロならば、先頭から最後の行までループして、キー列が一致する行を探す感じです。これならフィルタしても対応できる事でしょう。
(???) 2017/02/23(木) 14:27
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.