Hola!
¿En qué línea se produce el error?
Si no lo sabes a ciencia cierta, en el manejador de errores de la función, a continuación de "MsgBox Err.Number..." teclea lo siguiente:
Código:
Debug.Assert False
Resume
De esta manera, cuando se produzca el error, la ejecución se detendrá en la línea "Debug.Assert etc", y podrás ejecutar el programa instrucción por instrucción con F8. Al pasar por encima de "Resume", volverás a la línea que te ha causado el error.
¡Ten cuidado! Si no eliminas esas dos líneas en tu programa final, cualquier error no controlado (todos, tal y como está definida la función) hará que la aplicación entre en un bucle infinito. Utiliza los "Resume" a secas sólo para depurar o si sabes muy bien lo que estás haciendo