Alright, everyone. I have a real conundrum for you all... or at least, it's a toughie for me... Probably really simple for someone.

Here's what I have:


_____[A]_____|________[B]_______|______[C]______|_______[D]_______
             |      Store ID    |               |     Store ID
             |       29763      |               |      29806
             |       30140      |               |      29807
             |       21652      |               |      29763
             |       30447      |               |      21652
Here's what I need:

_____[A]_____|________[B]_______|______[C]______|_______[D]_______
   Matches   |      Store ID    |               |     Store ID
    29763    |       29763      |               |      29806
    21652    |       30140      |               |      29807
             |       21652      |               |      29763
             |       30447      |               |      21652
My worksheet continues a few thousand rows down (Pulling data off a SQL DB) And what I want is to be able to compare columns B and C and identify duplicates. I currently have this running:

Sub Find_Matches()
    Dim CompareRange As Variant, x As Variant, y As Variant
    Set CompareRange = Range("D1:D3000")
    For Each x In Selection
        For Each y In CompareRange
            If x = y Then x.Offset(0, -1) = x
        Next y
    Next x
End Sub

Plagiarized... erm, I mean, ADAPTED directly from http://support.microsoft.com/kb/213367 . But it's giving me a somewhat undesirable result:


_____[A]_____|________[B]_______|______[C]______|_______[D]_______
   Store ID  |      Store ID    |               |     Store ID
    29763    |       29763      |               |      29806
             |       30140      |               |      29807
    21652    |       21652      |               |      29763
             |       30447      |               |      21652
As you can see, it is indeed isolating the matches, as I requested, but it's placing the matching numbers (x) directly to the left -- x.Offset(-1, 0) -- of the selection. This wouldn't be a problem if my spreadsheet wasn't thousands of excruciating rows deep.

What I really need is to have it list only the matches, (really anywhere, but preferably in Column A) without me having to scroll across the entire length of the sheet. Also, it would be nice if this could be done without VB. The VB Script takes forever.

Cookies for the first person to help me!