2016-04-01 202 views
0

我有用於掃描文件條形碼的電子表格。我已經讓宏返回文件掃描進入或離開的日期,但也希望避免快速連續掃描條形碼一次。條形碼掃描的VBA Excel代碼返回掃描時間

這是我的代碼:

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

你可以使用一個公共變量來存儲最後一次掃描時間+ 1分鐘,如果當前時間少於那個時間,那麼只要過早退出子程序,如果它再次運行代碼並更新時間

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 
+0

感謝您的回覆@保羅。我試圖將代碼添加到我的當前代碼,但它似乎不工作。我應該在哪裏添加代碼或調整代碼以使其工作? – WernerAvie

+0

sry我不能早日回覆我不在,如果你把第一行'If NOT Nextscan ......'放在你的子文件的頂部,而另一行'NextScan = .....'右邊然後在底部,然後將'Public NextScan ......'放在代碼模塊的頂部,而不是在子模塊或函數中。 –

+0

您可能需要一些代碼來處理表單上的輸入,也許會添加一些內容以擦除掃描程序放置在其中的數據,直到其顯示正確的時間。 –