【VBA研究】掃描條碼計數

作者:iamlaosong

倉庫入庫出庫時掃描商品條碼,以便統計每種商品的數量。掃描槍就是隱藏的鍵盤,所以調試程序的時候倒是不需要接一把槍,直接用鍵盤輸入就行了。業務需求和超市櫃檯結算差不多,要求掃描每件商品,並以此進行計數,統計每種商品的數量。爲此我考慮了編程和不編程兩種方案。

1、用數據透視表的方法。用Excel表的A列記錄掃描結果,用一個數據透視表統計A列每種條碼的數量。掃描完畢,刷新透視表就可以得到每種商品的數量,再在報表中引用這個數量即可,如下圖:

用公式引用透視表中數據,用vlookup函數查詢條碼對應的商品名稱,根據商品數量複製公式(人工拖拽複製即可),如下圖:

2、用窗體。由於編寫代碼,操作就比較簡單了,點擊按鈕,彈出窗體,掃描條碼計數即可,如下圖:

注意:因爲只用一個文本框接收條碼(其它文本框僅用於顯示:Enable=FALSE),所以回車不能激發KeyPress事件,所以要用KeyDown事件進行編程:

Private Sub TextBarCode_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        ScanOK
        'KeyCode = 0
    End If
End Sub

技巧:如果窗體有按鈕(比如退出按鈕),爲了保持文本框始終處於激活狀態,應該令KeyCode = 0,以便回車不起作用。

掃描槍應設置成帶一個回車碼的方式。測試方法也簡單,打開Excel文件,點擊任一單元格,掃描條碼,內容進入單元格,光標跳到下一個單元格,表示設置成功。如果停留在原來的單元格,說明沒有帶回車碼。

參見:【VBA研究】進入文本框後其內容全選

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章