gpt4 book ai didi

excel - 光标持续闪烁以显示每秒运行的宏

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

这是每秒更新一个单元格值的代码。

Sub showtimer()
If CStr(ThisWorkbook.Worksheets("Convergence_Plot").Cells(1, 3).Value) = "0" Then
Call startpostprocess
Exit Sub
End If
ThisWorkbook.Worksheets("Convergence_Plot").Cells(1, 3).Value = ThisWorkbook.Worksheets("Convergence_Plot").Cells(1, 3).Value - TimeSerial(0, 0, 1)
timetimer = Now + TimeValue("00:00:01")
Application.OnTime timetimer, "showtimer", , True
End Sub

光标持续闪烁/显示蓝色处理光标。
如何避免?

最佳答案

:放

Application.Cursor = xlDefault

作为您的子目录的第一行。至少这在您执行以下操作时有效:
Sub test()
Dim i As Long
Application.Cursor = xlDefault
For i = 1 To 100000
Debug.Print i 'to chew up time
Next i
MsgBox "Done!"
End Sub

当从 Excel 中的开发人员选项卡启动时,光标看起来很正常,即使它正在运行。我没有用你设置的每秒启动 sub 来测试它(这可能会导致一些闪烁)。

编辑时:我测试了每秒调用 sub 的情况,发现仍然有闪烁。问题是更改为 Application.Cursor在函数调用之后不会持续存在。因此,在您的情况下,您没有看到蓝色处理光标(至少我没有看到它),但是您看到光标每秒都在重置,这同样令人讨厌。

这是一个潜在的解决方法。您的代码似乎是单元格 C1 中的倒计时。当倒计时到 0 时 sub startpostprocess启动。大概您按照您的方式进行操作(每秒调用 showtimer),因为您希望 Excel 在倒计时期间可用。实现这一目标的一种方法是拥有 Countdown sub 在倒计时期间连续运行(因此它对光标的更改不会超出范围)并使用 DoEvents保持 Excel 响应:
Sub Countdown(n As Long)
Application.Cursor = xlDefault
Dim start As Double

Do While n >= 0
ThisWorkbook.Worksheets("Convergence_Plot").Cells(1, 3).Value = n
start = Timer()
Do While Timer < start + 1
DoEvents
Loop
n = n - 1
Loop
startpostprocess
End Sub

Sub StartCountDown()
Countdown ThisWorkbook.Worksheets("Convergence_Plot").Cells(1, 3).Value
End Sub

我将单元格 C1 中的时间值更改为一个简单的整数计数器。当我将 10 放入 C1 并调用 StartCountDown单元格以 1 秒为增量更改为 10、9、8、...、1、0,然后 startpostprocess (我为它创建了一个 stub ,它只弹出一个 msgbox)启动。在倒计时期间可以编辑单元格。

关于excel - 光标持续闪烁以显示每秒运行的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32086555/

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