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