计算完成后,我可以发出 Excel 蜂鸣声吗?

Eli*_*ahu 13 microsoft-excel

我在 Excel 中有这些非常长的计算。我想将注意力从屏幕上转移到我的办公桌上做一些事情,但在计算完成时收到提醒。

有任何想法吗?

Ƭᴇc*_*007 21

好的,尝试一下(说明假定 Excel 2007 或更高版本):

  • 打开您的工作簿。
  • 将其另存为启用宏的 SS ( .XLSM)。
  • 按 Alt-F11 打开 VBA 编码窗口。
  • 右键单击 VBAProject ( yourbook.xlsm),然后选择 Insert → Module。
  • 打开新创建的“Module1”。
  • 在模块中粘贴此代码段:

    Sub Auto_Open()
        Application.OnKey "{F9}", "F9Handler"
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)

    这将导致每次打开 SS 时重新分配 F9 键。当您点击 F9 时,它将运行F9Handler而不是通常的计算。

  • 在模块中,粘贴以下代码段:

    Sub F9Handler()
        Application.Calculate
        Beep
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)

    这是现在当您按 F9 时将运行的内容。第一行运行Application.Calculate(这是 F9 通常执行的),然后是 Beeps。

  • 保存一切。

  • 关闭 Excel。
  • (重新)打开您制作的 XLSM。
  • 利润。:)

注意:您可能必须启用宏和/或使文档成为“受信任的”文档,以确保宏按预期运行。

更多信息:


小智 5

正如其他人提到的,使用beepVisual Basic (VB) 中的命令:

Function beepNow()
Beep 
End Function
Run Code Online (Sandbox Code Playgroud)

要获得 VB 编码,您需要获得Developer tab可用的(请参阅:使开发人员选项卡可见

因此,当您更改单元格或条件时,它会发出哔哔声。调用上述 VBS 代码的示例宏:=IF(C2<>C3,beepNow(),"")

  • 请注意,如果您当前未使用任何 VBA UDF,则引入它们可能会导致性能大幅下降(因为与普通函数不同,它们仅在主线程上运行)。发出一声哔哔声应该不是问题,但是如果您开始将其洒在任何地方,您就会遇到问题。 (2认同)
  • 不幸的是,此功能使用您的 PC 扬声器 - 不是您的声卡和扬声器,而是内部扬声器。仅供参考 - 在许多公司中,PC 扬声器已被移除或禁用,因此您将听不到任何声音。 (2认同)