|
▼kazuki さん:
こんばんは。
>列のデータの中に、重複されたデータがあるかどうか探したいです。
COUNTIF関数が使えそうです。
たとえばチェック列がB列だったとしたら、
空いている作業列(たとえばG列)に
G2 =COUNTIF($B$2:$B$50,B2) と式をいれ、ズズッと下へドラッグコピーしてください。2以上のものが重複しているセルです。
>あれば、メッセージボックスを表示するだけなのですが、
どの行とどの行とが重複しているか、メッセージボックスに表示したいなら、
Dictionaryで重複チェックすることもできます。
Dictionaryの解説は↓ココがいちばん分かりやすい。
Sub B列をチェック()
Dim v As Variant, key As String
Dim i As Long, Msg As String
With ActiveSheet
v = .Range("B2", .Range("B65536").End(xlUp)).Value
End With
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(v)
key = v(i, 1)
If .Exists(key) Then
.Item(key) = .Item(key) & "," & i + 1
Else
.Item(key) = i + 1
End If
Next
For Each v In .Keys
If InStr(.Item(v), ",") Then
Msg = Msg & v & vbTab & .Item(v) & vbCr
End If
Next
End With
If Len(Msg) Then
MsgBox Msg, , "重複キーと重複行"
Else
MsgBox "重複はありません"
End If
End Sub
重複しないリストを作る
http://www.officetanaka.net/excel/vba/tips/tips80.htm
|
|