Hola Whatson. Bienvenido al club.
El problema está en un punto coma que has puesto antes del esle. Al poner ahí el puntocoma, el else hace referencia a
if key = vk_return.
¡Un despite lo tiene cualquiera! 
Saludos, y pásate por aquí siempre que lo necesites.
Edito: ahora que lo veo, también sobra un end antes del else. Es decir, quita el "end;" y ponlo después de "LabelError.Caption..." (ves lo que decía de los despistes...

)