我有一个用于扫描序列号和资产标签的电子表格。 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公式的新手。
谢谢你的任何提示。
答案 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 Then
与If blnWannaHearDespasito = True Then
相同,但更短。 If
始终评估为True
或False
。
答案 1 :(得分:-1)
我做类似的事情,我输入序列号,重复重复是绝对不可以。我发现最好的方法是突出显示要扫描到的列,转到设置下的data>data validation
选择允许自定义,然后输入此公式
=COUNTIF($F$2:$F$65536, F2)=1
中公式中的F更改为您要对其应用的列字母,例如,如果扫描到A列,则公式将显示为=COUNTIF($A$2:$A$65536, A2)=1
然后在仍然打开数据验证窗口的情况下解决该问题时,单击错误警报选项卡,您可以在此处设置自定义消息和警报。
如
序列号已扫描!
该序列号已被扫描到系统中,请重新检查序列号并重新扫描。
找到副本时,它不仅会弹出错误提示,而且还会播放默认的Windows声音。