我要在excel中输入序列号,我已经启用了数据验证,并且可以正常运行。但是,大多数在扫描时使用系统的用户都会听到蜂鸣声,即使扫描器没有将数据输入到单元格本身,也只是走自己的路,这会导致扫描遗漏。我正在尝试为整个列获取一个简单的VBA或公式,当将数据输入该列时,它将发出默认的Windows声音,让用户知道数据已成功输入到该单元格中。任何帮助将不胜感激,谢谢您提前。请记住,我尝试使用= If(B3> 30,BeepOnce(),“”)之类的值,但是我们的序列号同时包含字母和数字,即 G18BB0070988019282
答案 0 :(得分:1)
将其放在工作表的模块中,以监视B列中的任何更改。
根据更改值的长度,它会播放不同的声音:
具有所有3个变体的代码:
Option Explicit
Private Declare PtrSafe Function KernelBeep Lib "kernel32" Alias "Beep" _
(ByVal dwFreq As Long, _
ByVal dwDuration As Long) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonitoredArea As Range
Set MonitoredArea = Intersect(Target, Me.Range("B:B"))
If Not MonitoredArea Is Nothing Then
If Len(Target.Value) > 10 Then
'Beep ' Excel VBA Standard
KernelBeep 4000, 100 ' frequency, duration
'Application.Speech.Speak "ok", True
Else
KernelBeep 600, 100
KernelBeep 600, 100
KernelBeep 600, 100
'Application.Speech.Speak "a", True
End If
End If
End Sub