Lo que dice erbuson es verda, pero se aplica cuando la funcion se repite sin fin o sin una condicion de salida o escape, entonces se genera un desbordamiento, generalmente cuando esta mal diseñada la función marca error.
Pero en tu caso supongo que no se tiene que repetir infinidad de veces.
Te dejo el codigo corregido para que tambien se los muestres a tus compañeros y aprendan como hacer algo, de dos formas diferentes, talvez lo ocupen mas adelante.
Código:
Sub ejemplo()
x = InputBox("escribe un numero")
' Si es nulo, salimos de la función
If x = "" Then Exit Sub
' Si no es un número avisamos del error y reiniciamos la función
If Not IsNumeric(x) Then
MsgBox "Ingresa Solo Numeros", 1 + 48
call ejemplo
End If
' Si está entre 1 y 10 aplicamos el valor
If x >= 1 And x <= 10 Then
Range("A1").Select
ActiveCell.FormulaR1C1 = x
Else
' En caso contrario avisamos del error y reiniciamos la función
MsgBox "Escoje un numero entre el 1 y el 10 ", 1 + 48
call ejemplo
End If
End Sub
Tambien es muy buen ejemplo el que te dio erbuson.
saludos.