gpt4 book ai didi

vba - 在漫长的过程中如何通知用户?

转载 作者:行者123 更新时间:2023-12-02 12:38:09 25 4
gpt4 key购买 nike

我有一些很长的流程,需要在连续的阶段通知用户,这样他就不会相信 Excel 已经崩溃了。

如何使用 VBAExcel 中向用户显示异步消息?

最佳答案

您可以使用 Excel 中的状态栏来执行此操作:

Application.StatusBar = "status message"

以下是如何实现此功能的示例:http://www.vbaexpress.com/kb/getarticle.php?kb_id=87

下面是来自该网站的代码(添加换行符以使其更易于阅读):

Sub StatusBar()

Dim x As Integer
Dim MyTimer As Double

'Change this loop as needed.
For x = 1 To 250
'Dummy Loop here just to waste time.
'Replace this loop with your actual code.
MyTimer = Timer
Do
Loop While Timer - MyTimer < 0.03
Application.StatusBar = _
"Progress: " & x & " of 250: " & Format(x / 250, "Percent")
DoEvents
Next x

Application.StatusBar = False

End Sub

更新:我确实想补充一点,更新状态栏将导致性能受到相当大的影响(实际上相当大),因此您应该仅以适当的时间间隔更新它。这是我的意思的一个例子(我在这里使用 MOD 来确保我们只增加每 1000):

Sub test()

Dim i As Long
Dim temp As String

For i = 1 To 1000000
temp = "testing 123, testing 123"
If i Mod 1000 = 0 Then
Application.StatusBar = "Processing " & i & "/1,000,000..."
End If
Next

Application.StatusBar = "Ready"

End Sub

另请注意,您要将文本重置为“Ready”,否则它会像处于循环中一样。

关于vba - 在漫长的过程中如何通知用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8412850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com