2010-06-03 6 views
5

Die aktuelle Funktion, die ich zum Sammeln von Text InputBox verwende, kann anscheinend nicht mehr als 255 Zeichen akzeptieren, und ich muss in der Lage sein, mehr als das zu sammeln? Gibt es einen Parameter oder eine andere Funktion, die ich verwenden kann, um dieses Limit zu erhöhen?VBA InputBox-Zeichenlimit überwinden

+1

Warum eine InputBox? Eine kleine Form und ein Textfeld ist fast immer eine bessere Idee. – Fionnuala

+0

@Remou ~ weil das viel mehr Code erfordert und nicht immer einfach für den neuen Entwickler ist, während InputBox sehr zugänglich ist. Sonst +1 – jcolebrand

+0

~ Ich denke nicht, dass es eine längere Zeichenfolge dauern wird, SOL ... Folgen Sie @ Remou's Rat. – jcolebrand

Antwort

4

Um pedantisch zu sein, können Sie in der Inputbox bis zu 255 Zeichen eingeben, es werden jedoch nur 254 Zeichen zurückgegeben.

Darüber hinaus ja, Sie müssen ein einfaches Formular mit einem Textfeld erstellen. Dann machen Sie einfach ein wenig „Hilfsfunktion“ so etwas wie:

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

oder so ähnlich ...

+0

sollte dies nicht in einer Bezeichnung wie diese 'frmBigInputBox.myLabel.caption = prompt sein sonst ist alles in der oberen Leiste des Formulars/Fensters. – mountainclimber

2

Dank BradC für die Info, dass. Mein endgültiger Code war ungefähr wie folgt, ich habe einen Knopf, der das Formular anruft, das ich erstellt habe, und positioniere es ein bisschen, da ich einige Probleme mit dem Formular hatte, das an der falschen Stelle war, jedes Mal nach dem ersten Mal.

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

Das Benutzerformular war eine TextBox und zwei CommandButtons (Abbrechen und Ok). Der Code für die Schaltflächen wie folgt:

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

ich nicht kommentieren genug rep müssen, aber in der Unter form_load für die Helfer können Sie hinzufügen:

me.AutoCenter = True 

Außerhalb dieser Form, Sie können es wie folgt tun:

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

My Access-Formulare alle verwirren, wenn ich von meinen zwei zusätzlichen Monitore bei der Arbeit an meinen einem zusätzlichen Monitor zu Hause gehen, und werden manchmal in der Ecke verloren. Dieses AutoCenter hat es in die Formulareigenschaften jedes meiner Formulare geschafft.

+0

Willkommen auf der Website! Dies versucht nicht, wie du weißt, die Frage zu beantworten und sollte ein Kommentar sein. [Bitte verwenden Sie ausschließlich Antworten, um die Frage zu beantworten] (// meta.stackoverflow.com/q/92107). Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag - du kannst deine eigenen Beiträge jederzeit kommentieren, und sobald du [ausreichende Reputation] hast (// stackoverflow.com/help/whats-reputation) wirst du in der Lage sein [jeden Beitrag kommentieren] (// stackoverflow.com/help/privileges/comment). In der Zwischenzeit verwenden Sie bitte keine Antworten zum Posten von Kommentaren. – Mogsdad

Verwandte Themen