Ich habe die vorhandenen Fragen durchsucht und ähnliche Fragen und Antworten gefunden, aber keine, die meinen Anforderungen entsprechen.
Ich habe eine Kalkulationstabelle, in der ich die Möglichkeit haben möchte, durch Klicken auf Links in einer Kalkulationstabelle zur zweiten zu gelangen und den Wert in der angeklickten Zelle in ein Feld in der zweiten Kalkulationstabelle zu übertragen.
Beispielsweise enthält das erste Blatt in Spalte A die Einheiten IT
, Finance
, undNetworks
Klicken Sie auf eines dieser Felder, um zum zweiten Blatt mit dem Namen "Sub Unit" zu gelangen. Dort wird der Wert der Zelle in A1 eingetragen. Dort kann ich dann if-Anweisungen schreiben, um die Liste der Untereinheiten zu füllen. Wenn Sie beispielsweise auf klicken, IT
wird dies in Zelle A1 eingefügt IT
und dann werden diese über if-Anweisungen in A3-A5 wie folgt erstellt:
Security, Support, Development
Dann würde ich ähnlichen VB-Code wiederverwenden, sodass jemand, wenn er auf den Namen einer Untereinheit klickt, zu einem dritten Blatt weitergeleitet wird, auf dem die Details zur Untereinheit angezeigt werden.
Hoffe, das macht Sinn,
Ich bin ein Neuling in VBA, also geben Sie mir bitte an, wo ich den Code platzieren soll (z. B. auf der Registerkarte, durch Rechtsklick, in der Codeansicht oder an einer anderen Stelle).
Antwort1
Klicken Sie auf Blatt 1, ALT+F11
um den VB-Editor zu öffnen. Kopieren Sie diesen Code und fügen Sie ihn als Standardmodul ein.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "Range " & Target.Address & " was double clicked"
On Error Resume Next
Dim xRg As Range
Set xRg = Application.Selection
Range("A80").Copy Sheet2.Range("A80")
Application.Goto Worksheets("Sheet2").Range("A80"), True
End Sub
Wie es funktioniert:
- Schreiben Sie einige Daten in die Zelle
A80
und doppelklicken Sie auf die Zelle. - Sie erhalten ein Meldungsfeld zur Bestätigung, auf welche Zelle geklickt wurde.
- Knopf drücken
OK
. - Excel kopiert
Copy & Paste
den InhaltA80
und platziert den Zellzeiger in die ZelleA80
von Blatt 2.
Achtung
- Passen Sie die Zellbezüge und den Blattnamen im Code nach Bedarf an.
- Sie können sich auf den Zellbereich beziehen
Copy & Paste
. - Bearbeiten Sie dazu diese Zeile:
Range("A80:A85").Copy Sheet2.Range("A80")