Frage

Die aktuelle Funktion, mit der ich eine Texteingangsbox sammle, 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, mit der ich diese Grenze erhöhen kann?

War es hilfreich?

Lösung

Um pedantisch zu sein, können Sie mit der Inputbox bis zu 255 Zeichen eingeben, aber nur 254 Zeichen zurückgeben.

Darüber hinaus müssen Sie eine einfache Form mit einem Textfeld erstellen. Dann machen Sie einfach eine kleine "Helferfunktion" so etwas wie:

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

oder sowas ähnliches...

Andere Tipps

Danke Bradc für die Info so. Mein endgültiger Code war grob wie folgt. Ich habe einen Knopf, der das Formular aufgerufen habe, das ich erstellt habe, und positioniert es ein wenig, da ich einige Probleme mit dem Formular hatte, das jedes Mal nach dem ersten Mal, als ich verwendet habe, an der falschen Stelle war.

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

Die Benutzerform war ein Textfeld und zwei Befehlsbuttons (Abbrechen und OK). Der Code für die Schaltflächen war 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

Ich habe nicht genug Repräsentanten, um Kommentare abzugeben, aber in der Subform_Load für den Helfer können Sie hinzufügen:

me.AutoCenter = True

Außerhalb dieser Form können Sie es so tun:

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

Meine Zugangsformulare werden alle verwirrt, wenn ich von meinen beiden zusätzlichen Monitoren bei der Arbeit zu meinem One Extra -Monitor zu Hause gehe und manchmal in der Ecke verloren geht. Dieser Autokenter hat es in die Formeigenschaften jeder meiner Formen geschafft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top