如何在条件满足时获得excel播放声音

时间:2017-07-27 14:54:23

标签: excel vba excel-vba

我有一个用于扫描序列号和资产标签的电子表格。 2列和条形码扫描仪。我已经设置了条件格式,因此如果任何单元格在设置范围内获得重复条目,它会更改字体和单元格颜色,因此显然会出现错误。

我想在发生错误时播放声音,以便不再需要继续查看电脑以查看是否找到重复项。

如果单元格是某个值,我发现了很多播放声音的方法,但是如果应用了excels条件格式,则没有。

任何建议都将不胜感激。

#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

之后的vb代码

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

如果一个数字大于或等于另一个数字,这可以正常工作我想不出如何让它来获取副本,我是excel公式的新手。

谢谢你的任何提示。

2 个答案:

答案 0 :(得分:4)

以下是条件为blnWannaHearDespasito = True的代码。音乐是 Despasito 。 :)

Option Explicit

Public Sub TestMe()

    Dim blnWannaHearDespasito As Boolean
    blnWannaHearDespasito = True

    If blnWannaHearDespasito Then
        Application.Speech.Speak "Despasitoooooo"
    Else
        Application.Speech.Speak ("No")
    End If

End Sub

If blnWannaHearDespasito ThenIf blnWannaHearDespasito = True Then相同,但更短。 If始终评估为TrueFalse

Speech.Speak Method in MSDN

答案 1 :(得分:-1)

我做类似的事情,我输入序列号,重复重复是绝对不可以。我发现最好的方法是突出显示要扫描到的列,转到设置下的data>data validation选择允许自定义,然后输入此公式 =COUNTIF($F$2:$F$65536, F2)=1中公式中的F更改为您要对其应用的列字母,例如,如果扫描到A列,则公式将显示为=COUNTIF($A$2:$A$65536, A2)=1 然后在仍然打开数据验证窗口的情况下解决该问题时,单击错误警报选项卡,您可以在此处设置自定义消息和警报。 如 序列号已扫描! 该序列号已被扫描到系统中,请重新检查序列号并重新扫描。 找到副本时,它不仅会弹出错误提示,而且还会播放默认的Windows声音。