2010-06-03 32 views
5

La función actual que uso para recopilar texto InputBox no puede aceptar más de 255 caracteres aparentemente, ¿y debo poder recoger más que eso? ¿Hay algún parámetro o función diferente que pueda usar para aumentar este límite?Superar Límite de caracteres de cuadro de entrada de VBA

+1

¿Por qué un InputBox? Una forma pequeña y un cuadro de texto son casi siempre una mejor idea. – Fionnuala

+0

@Remou ~ porque eso requiere mucho más código y no siempre es fácil de usar para el nuevo desarrollador, mientras que InputBox es altamente accesible. De lo contrario +1 – jcolebrand

+0

~ No creo que tome una cadena más larga, SOL ... Sigue los consejos de @ Remou. – jcolebrand

Respuesta

4

Para ser pedante, Inputbox te permitirá escribir hasta 255 caracteres, pero solo devolverá 254 caracteres.

Más allá de eso, sí, tendrá que crear un formulario simple con un cuadro de texto. A continuación, sólo hacer un poco de algo "función auxiliar" como:

Function getBigInput(prompt As String) As String 
    frmBigInputBox.Caption = prompt 
    frmBigInputBox.Show 
    getBigInput = frmBigInputBox.txtStuff.Text 
End Function 

o algo por el estilo ...

+0

no debería estar en una etiqueta como esta 'frmBigInputBox.myLabel.caption = prompt' de lo contrario, todo está en la barra superior de la forma/ventana. – mountainclimber

2

Gracias BradC por la información que. Mi código final era más o menos del siguiente modo: tengo un botón que llama al formulario que creé y lo posiciono un poco, ya que tenía problemas con el formulario que estaba en el lugar equivocado cada vez después de la primera vez que lo usé.

Sub InsertNotesAttempt() 
    NoteEntryForm.Show 
    With NoteEntryForm 
     .Top = 125 
     .Left = 125 
    End With 
End Sub 

La forma de usuario era un Cuadro de texto y dos CommandButtons (Cancelar y Aceptar). El código de los botones fue el siguiente:

Private Sub CancelButton_Click() 
    Unload NoteEntryForm 
End Sub 

Private Sub OkButton_Click() 
    Dim UserNotes As String 

    UserNotes = NotesInput.Text 

    Application.ScreenUpdating = False 
    If UserNotes = "" Then 
     NoteEntryForm.Hide 
     Exit Sub 
    End If 

    Worksheets("Notes").ListObjects("Notes").ListRows.Add (1) 
    Worksheets("Notes").Range("Notes").Cells(1, 1) = Date 
    Worksheets("Notes").Range("Notes").Cells(1, 2) = UserNotes 
    Worksheets("Notes").Range("Notes").Cells(1, 2).WrapText = True 
    ' Crap fix to get the wrap to work. I noticed that after I inserted another row the previous rows 
    ' word wrap property would kick in. So I just add in and delete a row to force that behaviour. 
    Worksheets("Notes").ListObjects("Notes").ListRows.Add (1) 
    Worksheets("Notes").Range("Notes").Item(1).Delete 
    NotesInput.Text = vbNullString 
    NotesInput.SetFocus ' Retains focus on text entry box instead of command button. 
    NoteEntryForm.Hide 
    Application.ScreenUpdating = True 
End Sub 
1

no tengo representante suficiente para comentar, pero en el Sub Form_Load para el ayudante puede agregar:

me.AutoCenter = True 

Fuera de esa forma, puedes hacerlo de esta manera:

NoteEntryForm.Show 
Forms("NoteEntryForm").AutoCenter = True 

Mis formas de acceso obtener todos confundidos cuando voy de mis dos monitores adicionales en el trabajo para mi un monitor extra en casa, ya veces se pierden en la esquina. Este AutoCenter lo ha convertido en las propiedades de formulario de cada uno de mis formularios.

+0

¡Bienvenido al sitio! Esto no intenta responder a la pregunta publicada, como ya sabe, y debería ser un comentario. [Por favor, use Respuestas exclusivamente para responder la pregunta] (// meta.stackoverflow.com/q/92107). Para criticar o solicitar aclaraciones de un autor, deje un comentario debajo de su publicación; siempre puede comentar sus propias publicaciones, y una vez que tenga [reputación suficiente] (// stackoverflow.com/help/whats-reputation) podrá para [comentar cualquier publicación] (// stackoverflow.com/help/privileges/comment). Mientras tanto, no utilices las respuestas para publicar comentarios. – Mogsdad

Cuestiones relacionadas