Tienes un cacao impresionante convirtiendo cadenas a valor y valor a texto... esto en VB6 era completamente normal, pero vb2005 no le gusta...
cuando vayas a pasar el contenido de una cadena a una variable numérica acostúmbrate a usarla en la forma
numero= Cint(cadena) : numero= Cint("texto") ' si es un valor entero lo esperado, si fuera byte Cbyte(...), etc...
y cuando vayas a convertir de número a texto usa:
cadena= Cstr(numero)
El error posiblemente te aparezca en 'TextBox2.Text = TextBox2.Text & c' si es u7na concatenación de caracteres hazlo así:
TextBox2.Text = TextBox2.Text & Cstr(c) y ya de paso cambia también... la línea 'a(i) = InputBox("Ingrese Datos")' por: a(i) =cint( InputBox("Ingrese Datos"))