This one goes through each slicer cache in the workbook, looks at its first pivot table's cache index, then goes through all the other pivot tables in the workbook and if they're based on the same pivot cache, connects the slicer cache to that pivot table:
Sub blah1()
For Each sc In ThisWorkbook.SlicerCaches
If sc.PivotTables.Count > 0 Then
ThisSCIndex = sc.PivotTables(1).CacheIndex
For Each sht In ThisWorkbook.Sheets
For Each pt In sht.PivotTables
If pt.CacheIndex = ThisSCIndex Then sc.PivotTables.AddPivotTable (pt)
Next pt
Next sht
End If
Next sc
End Sub
This one looks at all the slicers currently associated with the pivot table that the selected cell is in, then goes through all the pivot tables in the workbook and if they're the same pivot cache connects the slicer cache to that pivot table.
Sub blah2()
'select a cell on a pivot table first!
Set pt = Selection.PivotTable
For Each slcr In pt.Slicers
For Each sht In ThisWorkbook.Sheets
For Each pvt In sht.PivotTables
If pvt.CacheIndex = pt.CacheIndex Then slcr.SlicerCache.PivotTables.AddPivotTable (pvt)
Next pvt
Next sht
Next slcr
End Sub
This next one needs you to select a slicer first and connects all pivot tables in the workbook which use the same pivot table cache as the slected slicer's pivot table's cache to it - but just that slicer.
Sub blah3()
'select a pivot table's slicer first!
Set SLCR = ThisWorkbook.ActiveSlicer
If SLCR Is Nothing Then
MsgBox "Select a slicer!"
Else
Set sc = SLCR.SlicerCache
Set thisPvt = sc.PivotTables(1) 'will fail if it's not linked to any pivot table.
For Each sht In ThisWorkbook.Sheets
For Each pvt In sht.PivotTables
If pvt.CacheIndex = thisPvt.CacheIndex Then sc.PivotTables.AddPivotTable (pvt)
Next pvt
Next sht
End If
End Sub