Nehmen wir an, ich habe „Blatt A“ und „Blatt B“ in derselben Arbeitsmappe.
Blatt B hat eine Zelle, die auf Blatt „A“ verweist, d. h. ='Blatt A '!Q20
Ich möchte Blatt B kopieren und „Blatt C“ in derselben Arbeitsmappe erstellen und ich möchte, dass der Zellverweis (=‘Blatt A‘!Q20) in Blatt C jetzt auf Blatt B verweist, also =‘Blatt B‘!Q20.
Wenn ich Blatt B kopiere und Blatt C erstelle, ist der Zellbezug immer noch ='Blatt A '!Q20
Ich habe Lösungen für ähnliche Probleme gesehen, jedoch nicht beim Kopieren von Blättern innerhalb derselben Arbeitsmappe.
TIA
Antwort1
Antwort2
Sie können auch eine einfache UDF definieren, die den Namen eines Arbeitsblatts zurückgibt, ofs
um dessen Position sich das aktuelle Arbeitsblatt bewegt.
Function sh(ofs As Long) As String
Dim cw As Long
cw = Application.Caller.Parent.Index
sh = Worksheets(cw + ofs).Name
End Function
Der Name des vorherigen Arbeitsblatts lautet sh(-1)
, der des nächsten sh(1)
. Jetzt können Sie mit einer Formel auf die Zelle im vorherigen Arbeitsblatt
verweisen :Q20
=INDIRECT("'"&sh(-1)&"'!Q20")
oder
=INDIRECT(ADDRESS(20,17,,,sh(-1)))