Ein weiteres Kopierproblem in Excel:
Wie kann ich ein Arbeitsblatt aus WorkbookA.xlsx in WorkbookB.xlsx ohne das kopierte Arbeitsblatt noch Referenzierung WorkbookA.xlsx kopieren zB die Formel =B!23
wird , =[WorkbookA.xlsx]!B!23
wenn kopiert.
Ich möchte "relative" Zellreferenzen anstelle von "absoluten" Zellreferenzen pflegen (ich werde diese Terminologie in der Excel-Welt erfinden, wenn sie noch nicht existiert).
Eine andere mögliche Alternative, die ich nicht zum Laufen bringen kann, ist die Option, nur Zellenwerte einzufügen. Excel behandelt "Werte" als berechnete Werte und nicht als tatsächliche Formeln in der Zelle. Wenn ich Formel einfügen wähle, gibt es immer noch absolute Verweise.
Mehr darüber, warum ich das brauche: Ich verwende ein Produktions-XLSX für den täglichen Betrieb. Wir müssen ständig "Upgrades" für dieses xlsx vornehmen, sodass eine Person eine Kopie und seine Änderungen für ein einzelnes Blatt erstellen kann. Gleichzeitig nimmt möglicherweise auch eine andere Person Änderungen an einem anderen Blatt vor. Da diese Blätter keine von anderen Blättern abhängigen Zellen aufweisen , wie z. B. ein zusammenfassender Bericht, ist es für uns wünschenswert, die Blätter nur zu kopieren und wieder in das ursprüngliche xlsx zusammenzuführen. Aber die "absolute" Referenzierung bereitet viel Ärger.
select all - copy - paste special - values
um nur Werte zu erhalten. Wenn Sie alles während des Kopiervorgangs tun möchten, anstatt sich darauf zu verlassen, dass der Endbenutzer diese Schritte ausführt, habe ich daran gearbeitet. Lassen Sie uns genau wissen, wie es in Bezug auf WorkbookA (oder 1) und WBB (2) und die Blatt #sAntworten:
Verwenden Sie Ctrl+ ~, um die Formeln anzuzeigen. Wählen Sie dann mit Ctrl+ Aalles aus, kopieren Sie es und fügen Sie es in den Notizblock ein.
Kopieren Sie es schließlich aus dem Editor und fügen Sie es in Ihre andere Arbeitsmappe ein.
quelle
Ich habe es in vielen Fällen einfacher gefunden, Folgendes zu tun:
[WorkbookA.xlsx]!
quelle
Die unsignierte Antwort direkt unter dieser ist die, die mit einer sehr geringen Abweichung für mich funktioniert hat.
Erstellen und speichern Sie eine Zieltabelle.
Verwenden Sie "Verschieben", "Kopieren" oder ziehen Sie Ihre Seite mit den Formeln in die neue Tabelle. Dadurch bleiben die Formeln auf der neuen Seite, die auf das alte Arbeitsblatt verweisen. Speichern Sie dann das neue Arbeitsblatt am selben Speicherort wie das alte Arbeitsblatt.
Wechseln Sie dann zur Registerkarte "Daten" und klicken Sie auf "Links bearbeiten". Die Option ist nur aktiv, wenn die Seite Links enthält.
Wählen Sie im daraufhin angezeigten Dialogfeld den Namen der Quelldatei aus und klicken Sie auf "Quelle ändern".
Wählen Sie im nächsten Dialogfeld zum Öffnen einer Datei den Namen der neuen Tabelle aus.
Klicken Sie auf Schließen und Sie sind fertig.
quelle
Oder machen Sie einfach folgendes:
Konvertiere dies:
dazu:
und keine Änderungen mehr an Ihren Referenzen, wenn Sie zwischen Arbeitsblättern kopieren.
Wenn Sie nicht viele Blätter referenziert haben, wäre eine andere Alternative zu verwenden
und geben Sie den Namen des Referenzblatts in Zelle B1 ein. Jetzt müssen Sie nur noch eine Zelle aktualisieren, wenn Sie sie in die neue Tabelle kopieren.
quelle
INDIRECT
Da es sich um eine flüchtige Formel handelt, die jedes Mal neu berechnet wird (im Gegensatz zu nur, wenn sie bearbeitet wird), kann dies komplexere Arbeitsmappen erheblich verlangsamen. Seien Sie also vorsichtigDer folgende Code kann an Ihre Bedürfnisse angepasst werden. Es übernimmt alle Formeln aus dem
wb1
Arbeitsblatt und wendet sie auf ein Arbeitsblatt in einer neuen Arbeitsmappe an. Die Formeln werden alsString
s angewendet , sodass keine Verweise auf die ursprüngliche Arbeitsmappe eingefügt werden. Außerdem ist dieser Code superschnell, da er die Zwischenablage nicht verwendet und kein Durchlaufen von Zellen erfordert.quelle
Da 99% der Antworten nicht einmal die ursprüngliche Frage beantworteten, finden Sie hier die richtige Antwort.
Kopieren Sie die Blätter wie gewohnt aus der Originaldatei (Original.xlsx) in die neue Excel-Datei (New.xlsx). Im Allgemeinen klicke ich mit der rechten Maustaste auf den Namen und wähle "Verschieben oder Kopieren ...".
Speichern Sie die zweite neu erstellte Datei (New.xlsx).
Klicken Sie in der neuen Datei unter "Daten" auf "Links bearbeiten".
Wählen Sie im Popup "Quelle ändern ..."
Suchen Sie die Datei (New.xlsx) und klicken Sie auf Öffnen.
Alle Verweise auf das Original (Original.xlsx) werden entfernt.
GETAN!
quelle
Das funktioniert bei mir.
quelle
Beide Arbeitsmappen müssen geöffnet sein, damit dies funktioniert . Sie führen dieses Makro aus und es kopiert
workbookA!sheet
1 nachworkbookB!sheet1
und ersetzt dann alleworkbookA
Verweise. Es ist grob, aber es funktioniert . Sie können den Code natürlich so ändern, dass er mit Ihren WorkbookA.xlsx-Namen übereinstimmt. Stellen Sie jedoch sicher, dass sie die richtige Erweiterung haben und in Anführungszeichen bleiben.Um ein Makro zu erstellen, klicken Sie auf alt + F11, um den Visual Basic-Editor aufzurufen. Klicken Sie dann mit der rechten Maustaste auf WBA
insert - module
und kopieren Sie den folgenden Code und fügen Sie ihn in das Modul ein. Drücken Sie dann F5, um das Makro auszuführen. Wenn das Makro nicht ausgeführt werden kann, liegt dies wahrscheinlich daran, dass Makros nicht aktiviert sind. Speichern Sie es und öffnen Sie es erneut. Wenn Sie aufgefordert werden, Makros zu aktivieren, aktivieren Sie sie.quelle
CTRL+H
jetzt manuell mache, aber all dies repariert nicht die Verweise für Steuerelemente, z. B. Schaltflächen, Dropdowns und dergleichen; und benannte Bereiche.Ich habe dies erreicht, indem ich die Zellen wie gewohnt in das neue Arbeitsblatt kopierte und dann einen Ersatz suchte, um den alten Dateipfad in den Formeln zu entfernen.
Wenn zum Beispiel die erste Formel ist
=J2
und dies wird=[filepath]J2
, suchen und ersetzen Sie einfach die gesamte neue Tabelle[filepath]
und ersetzen Sie sie durch nichts. Dies löscht es und stellt die Formel wieder her=J2
.Keine VB erforderlich!
quelle
Ich hatte ein ähnliches Problem. Der Grund, warum die Formeln mit dem Link zu WBA eingefügt wurden, war, dass die Registerkarte (Tabelle), an der ich in WBA arbeitete, anders benannt wurde als in WBB. Für mich war es immer "der letzte Bogen", aber einer hieß "MinFlow" und der andere "NormalFlow". Ich habe beide in "Ergebnisse" umbenannt und das Kopieren / Einfügen hat so funktioniert, wie ich es wollte - eine "relative Einfügung".
quelle
Wählen Sie die Zellen aus, die Sie verschieben möchten. Versuchen Sie nun, sie durch Ziehen und Ablegen auf ein anderes Arbeitsblatt (anderes Register) zu verschieben.
Ich weiß, es rollt. Hier ist der schwierige Teil: Drücken Sie einfach cmd (Mac) oder alt (Win) und Sie können die Zellen auf eine andere Registerkarte ablegen.
quelle
Hallo hier ist eine einfache Lösung für dieses Problem:
CTRL+F
und wählen Sie die Registerkarte Ersetzen.Replace with
Feld schreiben , drücken SieReplace All
.Voila - es ist geschafft.
quelle
Ein weiterer Trick: Ersetzen Sie vor dem Kopieren des Quellarbeitsblatts alle Formelqualifikatoren
=
durch andere Zeichen (z###=
. B. ).Kopieren Sie das Arbeitsblatt über, dann nach dem Kopieren, ersetzen Sie die Formel Qualifier zurück (ersetzt
###=
mit=
).Stellen Sie sicher, dass alle Blattreferenzen innerhalb der Formeln vor dem Referenzierungsblatt auch auf das neue Blatt kopiert werden.
quelle
Kopieren Sie das Blatt wie gewohnt. (Klicken Sie mit der rechten Maustaste auf die Registerkarte und wählen Sie "Verschieben oder Kopieren".) Dies dient zum Formatieren.
Kopieren Sie alle Zellen aus dem Originalblatt (mit Ctrl+ Aoder Dreieck oben links und Ctrl+ C)
Einfügen als Werte in die neue Arbeitsmappe (über Blatt "Schritt 1") (Einfügeoptionen> 123)
quelle
Wenn Sie dies automatisch ausführen müssen, weil Sie in einem VBA-Programm Blätter einziehen. Benutze das:
Ändern Sie einfach "Zeichenfolge im Namen des Quellbuchs gefunden". passend zu den alten Links, die Sie ersetzen möchten. Sie können diesen if-Block entfernen, wenn Sie alle Links ersetzen möchten.
quelle
Öffnen Sie beide Arbeitsmappen. Wählen Sie in der Quellarbeitsmappe (WorkbookA.xlsx) das Blatt aus, das Sie kopieren möchten. Klicken Sie mit der rechten Maustaste auf die Blattregisterkarte und wählen Sie "Verschieben oder Kopieren ...". Wählen Sie im Dialogfeld "Verschieben oder Kopieren" in der Dropdown-Liste "Buchen" die Option "ArbeitsmappeB.xlsx" aus, wählen Sie die Position in diesem Buch aus, an der Sie es ablegen möchten, und aktivieren Sie "Kopie erstellen". (Und klicken Sie auf "OK".)
quelle
Erstellen Sie eine Kopie des Blatts, von dem Sie Blätter verschieben möchten. In diesem Fall lautet die Kopie WorkbookA.xlsx. Benennen Sie es um, um "Copy of WorkbookA.xlsx" zu sagen. Öffnen Sie nun diese neue Arbeitsmappe sowie die Arbeitsmappe, in die Sie das Blatt verschieben möchten, in diesem Fall WorkbookB.xlsx. Klicken Sie mit der rechten Maustaste auf die Blätter in der von Ihnen erstellten Arbeitsmappe, z. B. Kopie von WorkbookA.xlsx, und wählen Sie "Verschieben oder Kopieren" und verschieben Sie diese Blätter nach WorkbookB.xlsx. Du bist fertig !
quelle