Excel VBA- TextBox1.SetFocus no funciona

En este código SetFocus (Línea 6) no funciona, genera un error, ¿por qué?. El SendKeys lo use como la opción para volver al TextBox1 y funciona, pero quiero escribir el código de manera correcta.

Private Sub TextBox1_AfterUpdate()
If TextBox1 <> Empty Then
VALOR_DIGITADO = TextBox1.Value
MsgBox VALOR_DIGITADO
TextBox1 = Empty
'TextBox1.SetFocus

SendKeys ("{TAB}")
End If
SendKeys ("{TAB}")
End Sub

Respuesta
1

¿Por qué quieres revisar el texto después de la actualización "AfterUpdate"?

¿Cuál es el objetivo final?

Tal vez debas utilizar otro evento.

Hola, que tal!... No es que quiera revisar el texto después de ingresar el dato, el MsgBox lo reemplazaré luego por el código que hace un proceso con la palabra ingresada. Lo que si quiero es que al finalizar ese proceso 1.) Se limpie la casilla, 2.) El cursor quede nuevamente en la casilla para ingresar una nueva palabra.

Lo que si quiero es que al finalizar ese proceso 1.) Se limpie la casilla, 2.) El cursor quede nuevamente en la casilla para ingresar una nueva palabra.

Reemplaza tu código con este evento:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  Dim VALOR_DIGITADO As String
  If TextBox1 <> Empty Then
    VALOR_DIGITADO = TextBox1.Value
    MsgBox VALOR_DIGITADO
    TextBox1 = Empty
    Cancel = True
  End If
End Sub

Si lo anterior no es lo que necesitas, entonces, en tu userform tienes un botón.

Utiliza el botón para lo que necesitas, por ejemplo:

Private Sub CommandButton1_Click()
  Dim VALOR_DIGITADO As String
  With TextBox1
    If .Value <> Empty Then
      VALOR_DIGITADO = .Value
      MsgBox VALOR_DIGITADO
      .Value = Empty
      .SetFocus
    End If
  End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas