我有这个用于扫描文件条形码的电子表格。我有宏来返回文件扫描进出的日期,但也希望避免条形码快速连续扫描多次。
这是我的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:A3000")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
Dim lc As Long
With Application
.EnableEvents = False
.ScreenUpdating = False
lc = Cells(Target.Row, Columns.Count).End(xlToLeft).Column
If lc = 1 Then
Cells(Target.Row, lc + 2) = Format(Now, "m/d/yyyy h:mm")
ElseIf lc > 2 Then
Cells(Target.Row, lc + 1) = Format(Now, "m/d/yyyy h:mm")
End If
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
例如,当一个文件在60秒的时间内被扫描多次时,我需要帮助放入一个定时器来返回一个msgbox。感谢
答案 0 :(得分:0)
你可以使用一个公共变量来存储最后一次扫描时间+ 1分钟,如果当前时间少于那个时间那么就过早地退出sub,如果它的好处就是再次运行代码并更新时间
Public NextScan as Double
Public Sub Test
If NOT NextScan < DateTime.Now Then Exit Sub
'YOUR CODE
NextScan = DateTime.Now + DateTime.TimeSerial(0, 1, 0)
End Sub