Here's a custom function... First, place the following code in a regular module...
Code:
[FONT=Verdana][COLOR=darkblue]Option[/COLOR] [COLOR=darkblue]Explicit[/COLOR][/FONT]
[FONT=Verdana][COLOR=darkblue]Public[/COLOR] [COLOR=darkblue]Function[/COLOR] MultiSheetUniqueCount(Rng1 [COLOR=darkblue]As[/COLOR] Range, Rng2 [COLOR=darkblue]As[/COLOR] Range)[/FONT]
[FONT=Verdana] [COLOR=green]'Set up a reference to Microsoft Scripting Runtime in Tools > References[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]Dim[/COLOR] Dict [COLOR=darkblue]As[/COLOR] Dictionary[/FONT]
[FONT=Verdana] [COLOR=darkblue]Dim[/COLOR] Rng3 [COLOR=darkblue]As[/COLOR] Range[/FONT]
[FONT=Verdana] [COLOR=darkblue]Dim[/COLOR] Cell1 [COLOR=darkblue]As[/COLOR] Range[/FONT]
[FONT=Verdana] [COLOR=darkblue]Dim[/COLOR] Cell2 [COLOR=darkblue]As[/COLOR] Range[/FONT]
[FONT=Verdana] Application.Volatile[/FONT]
[FONT=Verdana] [COLOR=darkblue]Set[/COLOR] Dict = CreateObject("Scripting.Dictionary")[/FONT]
[FONT=Verdana] [COLOR=darkblue]For[/COLOR] [COLOR=darkblue]Each[/COLOR] Cell1 [COLOR=darkblue]In[/COLOR] Rng1[/FONT]
[FONT=Verdana] [COLOR=darkblue]With[/COLOR] Worksheets(Cell1.Value)[/FONT]
[FONT=Verdana] [COLOR=darkblue]Set[/COLOR] Rng3 = Intersect(.UsedRange, .Range(Rng2.Address))[/FONT]
[FONT=Verdana] [COLOR=darkblue]If[/COLOR] [COLOR=darkblue]Not[/COLOR] Rng3 [COLOR=darkblue]Is[/COLOR] [COLOR=darkblue]Nothing[/COLOR] [COLOR=darkblue]Then[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]For[/COLOR] [COLOR=darkblue]Each[/COLOR] Cell2 [COLOR=darkblue]In[/COLOR] Rng3[/FONT]
[FONT=Verdana] [COLOR=darkblue]If[/COLOR] Cell2.Value <> "" [COLOR=darkblue]Then[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]If[/COLOR] Dict.Exists(Cell2.Value) [COLOR=darkblue]Then[/COLOR][/FONT]
[FONT=Verdana] [COLOR=green]'Do nothing[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]Else[/COLOR][/FONT]
[FONT=Verdana] Dict.Add Cell2.Value, Cell2.Value[/FONT]
[FONT=Verdana] [COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]Next[/COLOR] Cell2[/FONT]
[FONT=Verdana] [COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]End[/COLOR] [COLOR=darkblue]With[/COLOR][/FONT]
[FONT=Verdana] [COLOR=darkblue]Next[/COLOR] Cell1[/FONT]
[FONT=Verdana] MultiSheetUniqueCount = Dict.Count[/FONT]
[FONT=Verdana][COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Function[/COLOR][/FONT]
Then a worksheet formula can be used, such as...
=MultiSheetUniqueCount(A2:A5,DH:DH)
=MultiSheetUniqueCount(A2:A5,DH2:DH100)
...where A2:A5 contains the sheet names.