Howdy Mike,
Not sure about the tack-on loop, but you can use the TotUni long integer returned by the following which should respresent the count of unique items in your column of choice:
<font face=Courier New><SPAN style="color:darkblue">Sub</SPAN> CntUnique()
<SPAN style="color:darkblue">Dim</SPAN> Uni <SPAN style="color:darkblue">As</SPAN> Collection, cl <SPAN style="color:darkblue">As</SPAN> Range, LpRange <SPAN style="color:darkblue">As</SPAN> Range
<SPAN style="color:darkblue">Dim</SPAN> clswfrm <SPAN style="color:darkblue">As</SPAN> Range, clswcst <SPAN style="color:darkblue">As</SPAN> Range, myRng <SPAN style="color:darkblue">As</SPAN> Range
<SPAN style="color:darkblue">Dim</SPAN> TotUni <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Long</SPAN>
<SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green">'*************</SPAN></SPAN></SPAN>
<SPAN style="color:darkblue">Set</SPAN> myRng = Sheets(1).[a:a] <SPAN style="color:green">'define your sheet/range</SPAN>
<SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green">'*************</SPAN></SPAN></SPAN>
<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">Resume</SPAN> <SPAN style="color:darkblue">Next</SPAN>
<SPAN style="color:darkblue">Set</SPAN> clswfrm = myRng.SpecialCells(xlFormulas)
<SPAN style="color:darkblue">Set</SPAN> clswcst = myRng.SpecialCells(xlConstants)
<SPAN style="color:darkblue">Set</SPAN> myRng = <SPAN style="color:darkblue">Nothing</SPAN> <SPAN style="color:green"><SPAN style="color:green">'free up memory</SPAN></SPAN>
<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">GoTo</SPAN> 0
<SPAN style="color:darkblue">If</SPAN> clswfrm <SPAN style="color:darkblue">Is</SPAN> <SPAN style="color:darkblue">Nothing</SPAN> And clswcst <SPAN style="color:darkblue">Is</SPAN> <SPAN style="color:darkblue">Nothing</SPAN> <SPAN style="color:darkblue">Then</SPAN>
MsgBox "No Unique Cells"
<SPAN style="color:darkblue">Exit</SPAN> <SPAN style="color:darkblue">Sub</SPAN>
<SPAN style="color:darkblue">ElseIf</SPAN> <SPAN style="color:darkblue">Not</SPAN> clswfrm <SPAN style="color:darkblue">Is</SPAN> <SPAN style="color:darkblue">Nothing</SPAN> And <SPAN style="color:darkblue">Not</SPAN> clswcst <SPAN style="color:darkblue">Is</SPAN> <SPAN style="color:darkblue">Nothing</SPAN> <SPAN style="color:darkblue">Then</SPAN>
<SPAN style="color:darkblue">Set</SPAN> LpRange = Union(clswcst, clswfrm)
<SPAN style="color:darkblue">ElseIf</SPAN> clswfrm <SPAN style="color:darkblue">Is</SPAN> <SPAN style="color:darkblue">Nothing</SPAN> <SPAN style="color:darkblue">Then</SPAN> <SPAN style="color:darkblue">Set</SPAN> LpRange = clswcst
Else: <SPAN style="color:darkblue">Set</SPAN> LpRange = clswfrm
<SPAN style="color:darkblue">End</SPAN> <SPAN style="color:darkblue">If</SPAN>
<SPAN style="color:darkblue">Set</SPAN> clswfrm = Nothing: <SPAN style="color:darkblue">Set</SPAN> clswcst = <SPAN style="color:darkblue">Nothing</SPAN> <SPAN style="color:green">'Free up memory</SPAN>
<SPAN style="color:darkblue">Set</SPAN> Uni = <SPAN style="color:darkblue">New</SPAN> Collection
<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">Resume</SPAN> <SPAN style="color:darkblue">Next</SPAN>
<SPAN style="color:darkblue">For</SPAN> <SPAN style="color:darkblue">Each</SPAN> cl <SPAN style="color:darkblue">In</SPAN> LpRange
Uni.Add cl.Value, <SPAN style="color:darkblue">CStr</SPAN>(cl.Value) <SPAN style="color:green">'assign unique key string</SPAN>
<SPAN style="color:darkblue">Next</SPAN> cl
<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">GoTo</SPAN> 0
<SPAN style="color:darkblue">Set</SPAN> LpRange = <SPAN style="color:darkblue">Nothing</SPAN> <SPAN style="color:green"><SPAN style="color:green">'free up memory</SPAN></SPAN>
TotUni = Uni.Count
<SPAN style="color:darkblue">Set</SPAN> Uni = <SPAN style="color:darkblue">Nothing</SPAN> <SPAN style="color:green">'<SPAN style="color:green"><SPAN style="color:green">'free up memory</SPAN></SPAN></SPAN>
MsgBox TotUni <SPAN style="color:green">'Work with the Unique value total here (replace msgbox)</SPAN>
<SPAN style="color:darkblue">End</SPAN> <SPAN style="color:darkblue">Sub</SPAN>
</FONT>
The proc. may seem a little long, however, I didn't think looping through 65536 cells in a column is a good approach. The initial part of procedure is determining your range in the column that actually holds either cell constants or formulae, which gets us around evaluating blank cells.
Hope this helps.