2016-04-04 16 views
0

バーコードをスキャンするとExcelの右のセルに移動する必要がありますが、現在は下に移動します。 Excelのオプションで変更したくないのは、他のシートでEnterキーを押したときにセルカーソルを下げる必要があるためです。バーコードをスキャンしてExcelを右のセルに移動しようとしています

+0

「Workbook_SheetActivate」イベントを使用してhttp://excel.tips.net/T002073_Choosing_Direction_after_Enter_On_a_Workbook_Basis.html –

+0

を実行することはできません。私がコードを入力するときに、それを保存したり効果的にするために正しいことに当てはまらないかどうかはわかりません。私は保存ボタンを押すだけです。私がVBAを終了して戻ってきたら、まだそこにいます。 – anra

+0

あなたのニーズに合わせてコードを修正する必要があります。恐らく投稿されたものと同じように動作します... –

答えて

1

私が最初に始めたこのコードブロックが見つかりました。

[挿入]の下の開発者からActiveXテキストボックスを開き、スキャンするシートに配置します。 A1を選択し、テキストボックスをクリックします。開発者はデザインモードの表示がオフになっていることを確認してください(ツールバーのリボンを見てください)。

**の前後の行は、変更する必要があります。これは長さに設定されていますが、Casesのような他のものでも遊べます。値として12345のバーコードを作ってみてください。

Private Sub TextBox1_Change() 
**If Len(TextBox1.Value) = 5 Then** 
    ActiveCell.Value = TextBox1.Value 
    ActiveCell.Offset(1).Activate 
    Application.EnableEvents = False 
    TextBox1.Activate 
    TextBox1.Value = "" 
End If 

End Sub 

ケースの例です。 "Waste R - 1"を値としてバーコードを作ってみてください。

Private Sub TextBox1_Change() 

Dim ws As Worksheet, v, k, i, j 
Set ws = Worksheets("Sheet1") 

v = TextBox1.Value 
k = 0 
i = 0 
j = 0 

Select Case v 

Case "Waste R - 1": i = 2 
k = 1 
j = "Waste R - 1" 
'Start i at whatever column you want to start at 
'k is the type of case and if statement you want to run (I have several, but for simplicity, I have only attached one) 


End Select 

    If k = 1 Then 

    ws.Cells(1, 1) = ws.Cells(1, 1).Value + 1 
    ' adds number into cell (A1) to reference which column to be in 
    ' Starts in Column A then adds a value of one to reference column B 

    i = ws.Cells(1, 1) 
    'Sets i = to the A1 value 

    Cells(1, i).Value = j 
    ' You may be able to set this to textbox1.value 
    ' Says to put the Textbox Value into whatever column and row A 

    TextBox1.Activate 
    TextBox1.Value = "" 
End If 
End Sub 

セルA1に値2を必ず入力して開始してください。

最終的には、これをループにすることができます。 私は簡単な方法があると確信していますが、私はVBAシートに1つのモジュールリファレンスを貼り付けるための優れたテンプレートを作成しました。更新はとても簡単です。

関連する問題