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

发布于 2024-12-26 06:02:17 字数 162 浏览 1 评论 0原文

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

In VBA, I am repeatedly updating the contents of a list box with the text of a steadily growing text file. Is there any way to let the user maintain control (scroll the list box, press a button) while the loop that I'm in to update the list box is running?
An alternative to application.wait would also work; as in, update -> wait x seconds (where the user can still do stuff -> update again -> repeat.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

删除会话 2025-01-02 06:02:17

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

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_Activate 事件中:

UpdateTextBox

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

要测试它,请运行 ShowUserForm。

Here's a start. In a regular module, paste this code:

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

In your userform paste this code in the UserForm_Activate event:

UpdateTextBox

It updates the values from column A of Sheet1 in the workbook with the code.

To test it, run ShowUserForm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文