2017-10-25 2 views
0

Ich habe ein Arbeitsblatt, in dem Benutzer ein Zeichen in einer Zelle eingeben müssen und ich möchte die Zelle den neuen Wert annehmen, ohne RETURN (oder drücken ENTER) und bleiben Sie in der gleichen Zelle.geben Sie ein Zeichen in das Arbeitsblatt ein mit bestätigen (return/enter)

enter status in one cell without confirmation

Wie kann ich das erreichen?

Grtz BARTH

+1

Wie kann ich das erreichen? 1. Track Sheet Änderungsereignis. 2. Einmal auf der gewünschten Zelle, Track-Taste drücken Sie auf Excel (WinAPI ist der einzige Weg). 3. Oder Else super ein Textfeld über die Zelle auferlegen und den Tastendruck auf der Textbox verfolgen. – cyboashu

+1

Wie wird '10' als einzelnes Zeichen eingegeben? – YowE3K

+0

Sie haben Recht, YowE3K ;-) sollte das 0-9 sein – BartH

Antwort

0

OK, für WinAPI Suche figuered ich eine passende Lösung aus:

In Workbook_Open und Sheet_Activate ich die Application.OnKey Verfahren zu stoppen meine Schlüssel verwendet, wie:

Private Sub Workbook_Open() 
    Application.OnKey ("1"), "testOne" 
    'Here other keys 
End Sub 

und

Private Sub Worksheet_Activate() 
    Application.OnKey ("1"), "testOne" 
    'Here other keys 
End Sub 

während der folgenden Verfahren (e) in einem Standard-Modul kümmern, was ich brauchte:

Sub testOne() 
    ActiveCell.Value = 1 
End Sub 
'And Sub testTwo() etc. 

(Ich brauche keine Eingabe von Werten in den anderen Zellen zu erlauben, zu stören, da sie ohnehin gesperrt sind.)

Achten Sie darauf, die Freilassung von OnKey in Workbook_BeforeClose und Sheet_Deactive setzen:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Application.OnKey ("1") 
    'Here other keys 
End Sub 

Private Sub Worksheet_Deactivate() 
    Application.OnKey ("1") 
    'Here other keys 
End Sub 

Vielleicht nicht die fortschrittlichste Lösung, aber es funktioniert für das, was ich brauche.

Grtz BartH

Verwandte Themen