在保持用户控制的同时反复更新列表框的内容

时间:2012-01-10 16:48:51

标签: vba wait text-files listbox-control

在VBA中,我反复使用稳定增长的文本文件的文本更新列表框的内容。有没有办法让用户保持控制(滚动列表框,按一个按钮),而我正在进行更新列表框的循环正在运行? application.wait的替代方案也可以使用;如,更新 - >等待x秒(用户仍可以执行操作 - >再次更新 - >重复。

1 个答案:

答案 0 :(得分:1)

这是一个开始。在常规模块中,粘贴此代码:

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

在您的userform中将此代码粘贴到UserForm_Activate事件中:

UpdateTextBox

它使用代码更新工作簿中Sheet1的A列的值。

要测试它,请运行ShowUserForm。