Entonces se debe evaluar cada caracter del texto ingresado, con la función ASCII
Los rangos los podés encontrar en la Ayuda bajo ese tema, por ahora te dejo el control para números y letras (mayúsc y minúsc)... No sé qué tipo de texto vas a introducir en esos controles, quizás debas agregar en la rutina tambíén la ñ Ñ (164-165) y qizás los acentos.
El espacio es 0 por lo que entra en la primer evaluación (< 48) . Si vas a permitir espacios debes excluir el cero en las comparaciones.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then Cancel = True
'controla que solo sean nros y letras (mayúsc o minúsc)
x = 0
For i = 1 To Len(TextBox1)
If Asc(Mid(TextBox1, i, 1)) < 48 Or Asc(Mid(TextBox1, i, 1)) > 122 Then x = 1
If Asc(Mid(TextBox1, i, 1)) > 57 And Asc(Mid(TextBox1, i, 1)) < 65 Or (Asc(Mid(TextBox1, i, 1)) > 90 And Asc(Mid(TextBox1, i, 1)) < 97) Then x = 1
Next i
If x <> 0 Then Cancel = True