Pues lo acabo de probar en Excel 2003 y Excel 2007 y en ambos funciona correctamente.
 
Supongo que lo has grabado en un módulo, y no en una hoja... 
Mira que Hoja1 y Hoja2 sean el nombre interno de las hojas (el que se ve desde la ventana del proyecto, en modo VBA). No obstante, prueba a hacerlo poniéndole el nombre que aparece en las pestañas, y cambia esto: 
Por esto otro: 
Código:
 Sheets("Nombre de la pestaña").Select
  Haz lo mismo con la Hoja2. 
Por cierto, añade esta primera línea al macro:  
Es para que no se detenga el macro al encontrar un error (por ejemplo, si un email de la Hoja2 no está en la Hoja1).  
Edito: Veo que has dado con el motivo, y es lo último que te comentaba. Pon lo del 
On error resume next como primera línea del código, y solucionado. El macro se ejecutará hasta finalizar el trabajo, aunque encuentre errores.