So klicken Sie auf eine Zelle in A5: A10 in "Blatt 2" und lassen Sie diesen angeklickten Zellenwert in Zelle C3 in "Blatt 1" eingeben.

369
Lucas Bassoli

Ich habe eine Arbeitsmappe mit zwei Blättern, beschriftet Sheet 1und Sheet 2.

In habe Sheet 2ich einen Bereich A5:A10. Ich möchte in der Lage sein, auf eine Zelle in diesem Bereich zu klicken und deren Inhalt in eine Zelle in eingeben zu lassen Sheet 1.

Die Reichweite A5:A10ist also

1001   1002   1003  1004  1005  1006 

Ich möchte auf die Zelle A6 (in Sheet 2) klicken und den A6-Wert von 1002 eingeben Sheet 1 C3. Also das hat C3jetzt 1002.

Bisher musste ich den Wert Sheet 1manuell eingeben, möchte aber nicht nur einen Hyperlink innerhalb des Dokuments erstellen, sondern auch den Wert des C3 ändern.

0
Würde ein Dropdown-Menü die Auswahl dieser Werte für Sie unterstützen? Es könnte der einfachste Weg sein, um darüber zu gehen cybernetic.nomad vor 5 Jahren 0
Können Sie mit ** Doppelklick ** zufrieden sein? Gary's Student vor 5 Jahren 0
@ cybernetic.nomad Ich habe die Datenüberprüfungsoption mit dem Dropdown-Menü verwendet, aber es ist genauso aktuell wie die manuelle Eingabe des Werts in C3. Lucas Bassoli vor 5 Jahren 0
@ Gary'sStudent Ja, ein Doppelklick wäre eine noch bessere Option Lucas Bassoli vor 5 Jahren 0

1 Antwort auf die Frage

0
Gary's Student

Geben Sie das folgende Ereignismakro in den Arbeitsblatt-Codebereich von ein Sheet2:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim A As Range Set A = Range("A5:A10")  If Intersect(Target, A) Is Nothing Then Exit Sub  Cancel = True Application.EnableEvents = False Target.Copy Sheets("Sheet1").Range("C3") Application.EnableEvents = True End Sub 

Beachten Sie, dass der Code Sheet1 anstelle von Sheet 1 verwendet . (Ändern Sie dies, wenn Sie verwenden Sheet 1)

Da es sich um Arbeitsblattcode handelt, ist es sehr einfach zu installieren und automatisch zu verwenden:

  1. Klicken Sie mit der rechten Maustaste auf den Namen der Registerkarte am unteren Rand des Excel-Fensters
  2. Wählen Sie Code anzeigen, um ein VBE-Fenster aufzurufen
  3. Fügen Sie das Zeug ein und schließen Sie das VBE-Fenster

Wenn Sie Bedenken haben, probieren Sie es zunächst auf einem Testarbeitsblatt.

Wenn Sie die Arbeitsmappe speichern, wird das Makro damit gespeichert. Wenn Sie später als 2003 eine Version von Excel verwenden, müssen Sie die Datei als .xlsm statt als .xlsx speichern

So entfernen Sie das Makro:

  1. Bringen Sie die VBE-Fenster wie oben
  2. Löschen Sie den Code
  3. Schließen Sie das VBE-Fenster

Weitere Informationen zu Makros im Allgemeinen finden Sie unter:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

und

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Weitere Informationen zu Ereignismakros (Arbeitsblattcode) finden Sie unter:

http://www.mvps.org/dmcritchie/excel/event.htm

Makros müssen aktiviert sein, damit dies funktioniert!

EDIT # 1:

So lassen Sie zu, dass das Makro Daten in einem Arbeitsblatt zum Schutz ablegt:

  1. Schützen Sie das Blatt
  2. Entsperre bestimmte Zellen wie C3
  3. Schützen Sie das Arbeitsblatt erneut

Dadurch können das Makro (und der Benutzer) Daten in das Blatt eingeben und trotzdem Formeln usw. schützen.

EDIT # 2:

Um das Kopieren des Formats zu vermeiden, verwenden Sie stattdessen Folgendes:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim A As Range Set A = Range("A5:A10")  If Intersect(Target, A) Is Nothing Then Exit Sub  Cancel = True Application.EnableEvents = False Target.Copy Sheets("Sheet1").Range("C3").PasteSpecial Paste:=xlPasteValues Application.EnableEvents = True End Sub 

Um die Routine nach einem "Kickstart" zu starten, fügen Sie dieses Makro in ein Standardmodul ein und führen Sie es aus:

Sub qwerty() Application.EnableEvents = True End Sub 
Ich habe Makros in Developer> Macro Security> Alle Makros aktivieren und den Zugriffsschutz aktivieren. Und ich habe es in den View Code von Sheet 2 eingefügt und das andere Sheet in Sheet1 umbenannt. Wenn ich jedoch in A5: A10 auf eine Zelle doppelklicke, wird die Zelle einfach ausgewählt und ich kann sie bearbeiten. Lucas Bassoli vor 5 Jahren 0
@LucasBassoli Versuchen Sie, die Arbeitsmappe als **. Xlsm ** zu speichern. Schließen Sie dann die Arbeitsmappe. Öffnen Sie dann die **. xlsm ** -Version erneut. Gary's Student vor 5 Jahren 0
Toll es hat funktioniert! Es ist jedoch wichtig, dass Sheet1 geschützt wird, da es viele Formeln enthält. In Blatt 1 ist die einzige Zelle, die entsperrt ist, C3, und der gesamte Inhalt von Tabelle1 verweist auf C3 in ihren Formeln. Also habe ich versucht, Sheet1 zu schützen und auf A6 in Sheet2 zu doppelklicken, aber C3 wird nicht mehr aktualisiert. Gibt es eine Möglichkeit, den Makrocode zu bearbeiten, um zu verhindern, dass Blatt 1 ungeschützt gelassen wird? Lucas Bassoli vor 5 Jahren 0
@ LucasBassoli Dies ist ein wichtiges Thema. Siehe meine ** EDIT # 1 ** Gary's Student vor 5 Jahren 0
Kann die Formatierung in Sheet1 Cell C3 so festgelegt werden, dass sie zum Beispiel immer Arial 24 fett ist, während Helvetica 12 Light auf Sheet2 Cell A6 steht? Wenn ich auf A6 doppelklicke, wird nicht nur der Wert von A6 in C3 eingefügt, sondern auch die Formatierung, die mit A6 einhergeht (Schriftart, Größe, Fett / Licht, Rahmen, Füllung und Farbe). Lucas Bassoli vor 5 Jahren 0
Gelegentlich wird der Debugger ausgeführt, da C3 versehentlich gesperrt wurde. Sobald der Debugger jedoch nicht mehr ausgeführt wird, funktioniert die Doppelklickfunktion nicht mehr. Wie wird der Code "neu gestartet", damit er reaktiviert wird? Lucas Bassoli vor 5 Jahren 0
@ LucasBassoli Siehe meine ** EDIT # 2 **. Gary's Student vor 5 Jahren 0