用于条形码扫描的VBA Excel代码,用于返回扫描的时间

时间:2016-04-01 12:00:35

标签: excel vba excel-vba

我有这个用于扫描文件条形码的电子表格。我有宏来返回文件扫描进出的日期,但也希望避免条形码快速连续扫描多次。

这是我的代码:

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。感谢

1 个答案:

答案 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