Frage

In VBA aktualisiere ich wiederholt den Inhalt eines Listenfelds mit dem Text einer stetig wachsenden Textdatei. Gibt es eine Möglichkeit, den Benutzer die Steuerung beizubehalten (scrollen Sie das Listenfeld, drücken Sie eine Taste), während die Schleife, in der ich das Listenfeld aktualisiert, ausgeführt wird? Eine Alternative zur Anwendung. Wait würde auch funktionieren; Update -> Wait x Sekunden warten (wo der Benutzer immer noch Dinge machen kann -> erneut aktualisieren -> Wiederholen.

War es hilfreich?

Lösung

Hier ist ein Start. Fügen Sie in einem regulären Modul diesen Code ein:

Sub ShowUserForm()
UserForm1.Show vbModeless
End Sub

Sub UpdateTextBox()
Dim ws As Excel.Worksheet

Set ws = ThisWorkbook.Worksheets(1)
With UserForm1.ListBox1
    .List = ws.Range("A1:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row).Value2
    .ListIndex = .ListCount - 1
End With
Application.OnTime Now + TimeValue("00:00:5"), "UpdateTextBox"
End Sub

Fügen Sie diesen Code in Ihrem Benutzerform in das Ereignis userForm_Activate ein:

UpdateTextBox

Es aktualisiert die Werte aus Spalte A von Sheet1 in der Arbeitsmappe mit dem Code.

Um es zu testen, run showuserform.

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