如果在Excel中满足条件,如何播放声音?

网友投稿 314 2024-01-07

如果在Excel中满足条件,如何播放声音?

在Excel中,我们可以应用条件格式来格式化和突出显示需要满足条件的单元格,但是有时,如果满足条件,则可能需要播放声音。 例如,如果A1中的单元格值大于300,则我想播放声音。 Excel不支持此功能,本文中,我将介绍一些VBA代码来解决此任务。

使用VBA代码根据单元格值播放默认的系统提示音

使用VBA代码根据单元格值播放自定义声音

如果单元格值通过VBA代码在特定列中发生更改,请播放声音

使用VBA代码根据单元格值播放默认的系统提示音

这是一个方便的代码,供您在满足特定条件时播放默认的系统提示音,请按照以下步骤操作:

1. 按住 ALT + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:根据单元格值播放默认的系统提示音:

Function BeepMe() As String Beep BeepMe = "" End Function
Copy

3。 然后保存并关闭此代码窗口,返回到工作表,然后输入以下公式: = IF(A1> 300,BeepMe(),“”) 单元格旁边的空白单元格中包含您要基于其播放声音的值,然后按 输入 键,公式单元格中将不显示任何内容,请参见屏幕截图:

4。 现在,如果在单元格A1中输入的值大于300,将播放默认的系统提示音。

使用VBA代码根据单元格值播放自定义声音

如果您想播放默认系统提示音以外的其他声音,这里的VBA代码也可以帮您一个忙。

1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。

2. 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:根据单元格值播放特定的声音:

#If Win64 Then Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean #Else Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Boolean #End If Const SND_SYNC = &H0 Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 Function SoundMe() As String Updateby Extendoffice 20161223 Call PlaySound("c:\windows\media\Speech On.wav", _ 0, SND_ASYNC Or SND_FILENAME) SoundMe = "" End Function
Copy

如果在Excel中满足条件,如何播放声音?

3。 然后保存并关闭此代码窗口,返回到工作表,并输入以下公式: = IF(A1> 300,SoundMe(),“”)单元格旁边的空白单元格中包含您要基于其播放声音的值,然后按 输入 键,公式单元格中将不显示任何内容,请参见屏幕截图:

4。 从现在开始,如果将大于300的值输入到单元格A1中,则将立即播放特定的声音。

:在上面的代码中,您可以根据需要将声音wav文件更改为 c:\ windows \ media \ 文件路径。 看截图:

如果单元格值通过VBA代码在特定列中发生更改,请播放声音

如果要在特定列中更改单元格值时播放声音,则可以应用以下VBA代码。

1。 右键单击要在列中的值更改时播放声音的工作表标签,然后选择 查看代码 从上下文菜单中,然后在打开的 适用于应用程序的Microsoft Visual Basic 窗口,将以下代码复制并粘贴到空白模块中:

VBA代码:如果单元格值在列中更改,请播放声音:

Private Sub Worksheet_Change(ByVal Target As Range) Updateby Extendoffice 20161223 Dim xCell As Range On Error Resume Next If Target.Columns.Count = 1 Then If Intersect(Target, Columns(3)) Is Nothing Then Exit Sub Else For Each xCell In Columns(3) On Error Resume Next If (xCell.Value = Target.Value) And (xCell.Value <> "") Then Beep Exit For End If Next End If End If End Sub
Copy

备注:在上面的代码中,数字 3 在脚本中 专栏(3) 是当此列中的值更改时要播放声音的列号。

2。 然后保存并关闭此代码窗口,现在,如果第三列中的单元格值发生更改,则将播放默认的系统提示音。

最佳办公生产力工具

将小时转化为分钟 Kutools for Excel!

准备好增强您的 Excel 任务了吗? 利用的力量 Kutools for Excel - 您终极的节省时间的工具。 简化复杂的任务并像专业人士一样浏览数据。 以闪电般的速度体验 Excel!

为什么需要 Kutools for Excel

🛠️  超过 300 项强大功能: Kutools 包含 300 多项高级功能,可简化您在 1500 多种场景中的工作。

📈  卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!

⏱️  高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。

📊  定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。

🗄️  强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。

📝  七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。

🎓  用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。

立即下载,与 Excel 一起穿越时空!

阅读更多 免费下载... 采购... 
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。 每天将您的工作效率提高50%,并减少数百次鼠标单击!
阅读更多 免费下载... 采购... 

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何在Excel中选择两个单元格的较低或较高的值?
下一篇:如何从Excel工作表播放视频文件?
相关文章