Para copiar apenas as células visíveis em um intervalo filtrado, é necessário especificar que é isso que você tenta fazer. Por exemplo:
Sheets("Sheet1").Range("A1:B10").SpecialCells(xlCellTypeVisible).Copy _
Destination:=Sheets("Sheet2").Range("E1")
Alguns bons exemplos de como usar o autofilter no código VBA podem, entre outros lugares, ser encontrado aqui .
Não vejo razão para que isso não funcione quando você se referir a outras planilhas, exceto pelo uso de Activate
e Select
talvez cancelando a cópia-ação em algum momento. Qualquer motivo que você faça dessa maneira, em vez de como eu a delineava acima, com um intervalo de destino especificado especificado quando você faz a cópia? Eu vejo como você faz isso no seu primeiro exemplo, que eu assumo trabalho.