2016-08-08 10 views
0

Ich habe jetzt gleichzeitig worden stuggling aber ich weiß jetzt nicht, wie das zu tun ...wieder öffne ein Benutzerformular

Wenn ich eine Zelle in der Spalte Q wählen, erhalte ich eine Userform (das ist ok).

In dieser Userform ich den Inhalt der ausgewählten Zelle (zB Q6)

In Userform (das ist ok) Ich habe zwei Tasten: - beenden: die, ohne zu speichern, den Text in der Zelle, die die Userform wird geschlossen ; - Speichern: Speichern Sie den Text in der Zelle aus dem Benutzerformular.

Sowohl beim Speichern als auch beim Beenden bleiben die Auswahlen (Fokus) auf dieser Zelle (Q6).

Ich möchte, wenn ich erneut auf den Q6 klicke (der bereits ausgewählt ist), das Benutzerformular erneut öffnen.

Die einzige Lösung, die ich bisher gefunden habe, ist die Änderung der Auswahl (z. B. auf P6).

Cam jemand bitte, hilf mir? Danke.

+0

nur neugierig, warum so ein einfaches Werkzeug erstellen und in solche Schwierigkeiten geraten? Wenn Sie verhindern möchten, dass ein Benutzer den falschen Wert eingibt, versuchen Sie, eine msgbox aufzurufen, um die Änderungen durch den Event-Listener 'Change' zu ​​bestätigen oder zu verweigern. Wenn bestätigen, dann nichts tun, sonst "Rückgängig" die Änderungen. – Rosetta

+0

Warum nicht eine Tastenkombination zum Öffnen des Formulars zuweisen? –

Antwort

1

Zusätzlich zur aktuellen Form des Formulars können Sie auch einen Ereignishandler mit Doppelklick hinzufügen. In dem Codemodul des Blattes etwas tun, wie folgt aus:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Target.Column = Range("Q1").Column Then 
     UserForm1.Show 
     Cancel = True 
    End If 
End Sub 

Weisen Sie die Benutzer, wenn sie das Formular wieder aufführen wollen, sollten sie auf die aktuell ausgewählte Zelle klicken verdoppeln.

+0

Vielen Dank für Ihre schnelle Antwort. Es funktioniert, aber normalerweise wird Doppelklick verwendet, um Zelle in Excel standardmäßig zu bearbeiten, ist es nicht ...? Ich verstehe nicht, dass Cancel = True tun und warum Range ("Q1") (ist keine Referenz für Zelle Q1?) – colombo2003

+0

'Wenn Target.Column = 17 Then ist viel einfacher;) –

+0

@SiddhartRout Ich dachte daran natürlich, aber dann muss der Leser anhalten und herausfinden, welche Spalte 17 ist. Außerdem ist es einfacher, zu einer anderen Spalte zu wechseln. –

Verwandte Themen