Aktualisieren Sie wiederholt die Inhalte eines Listenfeld
-
26-10-2019 - |
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.
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.