2016-04-01 15 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秒の間隔で複数回スキャンされるメッセージボックスを返すために、タイマーに置くために助けが必要:

この

は私が持っているコードです。ありがとう

答えて

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

応答@Paulありがとうございます。私は現在のコードにコードを追加しようとしましたが、うまくいかないようです。コードを追加したり、コードを調整して、どこで機能させるべきですか? – WernerAvie

+0

sry私はすぐに私は離れていた返信couldnt ...最初の行を 'もしNextscanでない場合は......'あなたのサブの上に右と他の行 'NextScan = .....'右一番下にある「Public NextScan ......」は、サブモジュールや関数内ではなく、コードモジュールの一番上に置いてください。 –

+0

シート上の入力を処理するコードが必要な場合があります。正しい時間までスキャナによってデータを消去するために何かを追加することもできます。 –

関連する問題