2

我有一个用作倒数计时器的代码(一张纸上最多三个计时器),并且在计时器处于活动状态时会发生一些动作。现在一切正常。当任何计时器达到 0 时,将运行以下代码片段:

If Sheets("Sheet1").Range("C8").Interior.Color = 255 Or Sheets("Sheet1").Range("G8").Interior.Color = 255 Or Sheets("Sheet1").Range("K8").Interior.Color = 255 Then

Beep
Application.Speech.Speak ("Part is done")
Beep

Call AlertTIMER
Else
Exit Sub
End If

从上面的代码片段调用的AlertTIMERsub 运行Application.Wait,在它最后一次调用和下一次调用之间创建一个 3 秒的暂停。我包含等待功能的原因是因为在Application.Speech运行时我无法完成任何其他操作(例如单击终止警报子的“停止”命令按钮)。

有没有办法允许在 Application.Speech 处于活动状态时按下命令按钮,以便我可以删除 Application.Wait 功能?还是我需要保留 Application.Wait 的解决方法?

我曾尝试DoEvents将它放在第一次哔哔声之前使用,但它不起作用。

4

3 回答 3

1
Application.Speech.Speak "Part is done", SpeakAsync:=True

资料来源:https ://wellsr.com/vba/2016/excel/make-excel-talk-with-application-speech-speak-vba/

于 2018-05-06T17:14:53.460 回答
0

您可以添加指令 DoEvents 它将允许操作系统检查任何其他交互,例如点击...查看一些关于此的教程

于 2017-03-06T21:32:37.020 回答
0
Application.Speech.Speak ("Part is done",true)

这应该使您能够维护工作簿的功能

于 2017-05-23T16:38:56.377 回答