Kolejny problem z kopiowaniem w programie Excel:
Jak mogę skopiować arkusz z WorkbookA.xlsx do WorkbookB.xlsx bez skopiowanego arkusza roboczego wciąż odwołującego się do WorkbookA.xlsx, np. Formuła =B!23
staje się =[WorkbookA.xlsx]!B!23
po skopiowaniu.
Chcę zachować „względne” odwołania do komórek zamiast „absolutnych” odwołań do komórek (wymyślę tę terminologię w świecie Excela, jeśli jeszcze nie istnieje).
Inną możliwą alternatywą, której nie mogę uruchomić, jest opcja wklejania tylko „wartości” komórek. Excel traktuje „wartości” jak wartości obliczone, a nie rzeczywiste formuły w komórce. Jeśli wybiorę formułę wklejania, nadal będzie zawierać absolutne odniesienia.
Więcej informacji o tym, dlaczego potrzebuję tego: Mam codzienne użytkowe oprogramowanie XLSX. Ciągle musimy dokonywać „uaktualnień” do tego pliku xlsx, aby jedna osoba mogła utworzyć kopię i jego zmiany w jednym arkuszu. Jednocześnie inna osoba może również wprowadzać zmiany w innym arkuszu. Biorąc pod uwagę, że te arkusze nie mają zależnych komórek na innych arkuszach , takich jak raport podsumowujący, pożądane jest, aby po prostu skopiować i scalić arkusze z powrotem do oryginalnego pliku xlsx. Ale odniesienie „bezwzględne” sprawia wiele problemów.
select all - copy - paste special - values
aby zawierał tylko wartości. Jeśli chcesz zrobić to wszystko podczas kopiowania, a nie polegać na tym, że użytkownik końcowy wykona te kroki, cóż, pracowałem nad tym. Poinformuj nas dokładnie, jak chcesz, jeśli chodzi o skoroszyt A (lub 1) i WBB (2) oraz numer arkuszaOdpowiedzi:
Spróbuj użyć Ctrl+, ~aby wyświetlić formuły. Następnie użyj Ctrl+, Aaby zaznaczyć wszystko, skopiuj go, a następnie wklej do notatnika.
Na koniec skopiuj go z notatnika i wklej do drugiego skoroszytu.
źródło
W wielu przypadkach łatwiej mi było wykonać następujące czynności:
[WorkbookA.xlsx]!
źródło
Podpisana poniżej odpowiedź bez odpowiedzi jest tą, która działała dla mnie, z bardzo niewielkimi różnicami.
Utwórz i zapisz docelowy arkusz kalkulacyjny.
Użyj „przenieś”, „skopiuj” lub przeciągnij stronę z formułami do nowego arkusza kalkulacyjnego. Pozostawia to formuły na nowej stronie wskazujące na stary arkusz roboczy. Następnie zapisz nowy arkusz kalkulacyjny w tej samej lokalizacji, co stary arkusz.
Następnie przejdź do zakładki Dane> kliknij Edytuj łącza. Opcja nie będzie aktywna, chyba że na stronie znajdują się linki.
W wyświetlonym oknie dialogowym wybierz nazwę pliku źródłowego i kliknij „Zmień źródło”.
W oknie dialogowym otwartego pliku, które pojawi się obok, wybierz nazwę nowego arkusza kalkulacyjnego.
Kliknij Zamknij i gotowe.
źródło
Lub po prostu wykonaj następujące czynności:
Konwertuj to:
do tego:
i żadnych zmian w odniesieniach podczas kopiowania między arkuszami.
Jeśli nie odwołujesz się do wielu arkuszy, możesz użyć innej alternatywy
i wprowadź nazwę arkusza referencyjnego w komórce B1. Teraz masz tylko jedną komórkę do zaktualizowania po skopiowaniu do nowego arkusza kalkulacyjnego.
źródło
INDIRECT
jest zmienną formułą, więc będzie przeliczana za każdym razem (w przeciwieństwie do edycji), która może naprawdę spowolnić bardziej złożone skoroszyty, więc używaj ostrożniePoniższy kod można dostosować do własnych potrzeb. Pobiera wszystkie formuły z arkusza
wb1
i stosuje je do arkusza w nowym skoroszycie. Formuły są stosowane jakoString
s, więc nie ma wstawiania odniesień do oryginalnego skoroszytu. Ponadto ten kod jest super szybki, ponieważ nie korzysta ze schowka i nie wymaga pętli w komórkach.źródło
Ponieważ 99% odpowiedzi nawet nie dotyczyło pierwotnego pytania, oto właściwa odpowiedź.
Skopiuj arkusze z oryginalnego pliku (Original.xlsx) do nowego pliku Excel (New.xlsx), jak zwykle. Zasadniczo klikam nazwę prawym przyciskiem myszy i wybieram „Przenieś lub skopiuj ...”.
Zapisz drugi - nowo utworzony plik (New.xlsx).
W nowym pliku w obszarze Dane kliknij „Edytuj łącza”
W wyskakującym okienku wybierz „Zmień źródło ...”
Znajdź plik (New.xlsx) i kliknij Otwórz.
Wszystkie odniesienia do oryginału (Original.xlsx) zostaną usunięte.
GOTOWY!
źródło
To działa dla mnie.
źródło
Oba skoroszyty muszą być otwarte, aby to działało . Uruchom to makro, a skopiuje ono
workbookA!sheet
1,workbookB!sheet1
a następnie zastąpi wszystkieworkbookA
odniesienia. Jest surowy, ale działa . Możesz oczywiście zmienić kod, aby pasował do nazw WorkbookA.xlsx, ale upewnij się, że mają poprawne rozszerzenie i pozostają w cudzysłowie.Aha, aby utworzyć makro, na wypadek, gdybyś nie wiedział, naciśnij, alt + F11aby wywołać Edytor Visual Basic. Następnie kliknij prawym przyciskiem myszy WBA
insert - module
i skopiuj i wklej poniższy kod do modułu. Następnie naciśnij, F5aby uruchomić makro. Jeśli makro nie uruchomi się, to prawdopodobnie dlatego, że makra nie są włączone, więc zapisz je i otwórz ponownie, a gdy pojawi się monit o włączenie makr, włącz je.źródło
CTRL+H
teraz, ale wszystkie te nie naprawiają poprawek kontroli, np. Przycisków, rozwijanych menu i tym podobnych; i nazwane zakresy.Osiągnąłem to, kopiując komórki do nowego arkusza w normalny sposób, a następnie wykonując operację zastępowania w celu usunięcia starej ścieżki pliku z formuł.
Np. Jeśli pierwsza formuła jest
=J2
i tak się stanie=[filepath]J2
, po prostu znajdź i zamień cały nowy arkusz kalkulacyjny na[filepath]
i zamień na nic. Spowoduje to usunięcie i przywrócenie formuły do=J2
.Nie wymaga VB!
źródło
Miałem podobny problem. Powodem wklejenia formuł z linkiem do WBA było to, że karta (arkusz), nad którą pracowałem w WBA, miała inną nazwę niż ta w WBB. Dla mnie zawsze był to „ostatni arkusz”, ale jeden nazywał się „MinFlow”, a drugi „NormalFlow”. Zmieniłem nazwę na „Wyniki”, a kopiowanie / wklejanie działało tak, jak chciałem - „wklejanie względne”.
źródło
Wybierz komórki, które chcesz przenieść. Teraz spróbuj przenieść je, przeciągając i upuszczając w innym arkuszu (inna karta).
Wiem, przewija się. Oto trudna część: wystarczy nacisnąć cmd (mac) lub alt (win), a to pozwoli ci upuścić komórki do innej karty.
źródło
Cześć, oto proste rozwiązanie tego problemu:
CTRL+F
i wybierz kartę zamień.Replace with
polu, naciśnijReplace All
.Voila - gotowe.
źródło
Kolejna „sztuczka” - przed skopiowaniem źródłowego arkusza roboczego zamień wszystkie kwalifikatory formuł na
=
inny zestaw znaków (powiedzmy###=
).Skopiować arkusz skończy, to po kopii, wymienić tylną formuła kwalifikator (zastępujący
###=
z=
).Upewnij się, że wszelkie odniesienia do arkuszy w formularzach są również kopiowane do nowego arkusza przed arkuszem odniesienia.
źródło
Skopiuj arkusz jak zwykle. (kliknij prawym przyciskiem myszy, aby przejść do zakładki i przejść do „przenieś lub skopiuj”). Służy do formatowania.
Skopiuj wszystkie komórki z oryginalnego arkusza (używając Ctrl+ Alub lewego górnego trójkąta i Ctrl+ C)
Wklej jako wartości do nowego skoroszytu (na arkuszu „krok 1”) (Opcje wklejania> 123)
źródło
Jeśli musisz to zrobić automatycznie, ponieważ pobierasz arkusze w programie VBA. Użyj tego:
Wystarczy zmienić „Ciąg znaleziony w nazwie książki źródłowej”. aby dopasować stare linki, które chcesz zastąpić. Możesz usunąć to, jeśli blok, jeśli chcesz zastąpić wszystkie linki.
źródło
Otwórz oba skoroszyty. W źródłowym skoroszycie (WorkbookA.xlsx) wybierz arkusz, który chcesz skopiować. Kliknij kartę arkusza prawym przyciskiem myszy i wybierz „Przenieś lub skopiuj…”. W oknie dialogowym „Przenieś lub skopiuj” wybierz „WorkbookB.xlsx” z menu „Aby zarezerwować”, wybierz miejsce w tej książce, w którym chcesz ją umieścić, i zaznacz „Utwórz kopię”. (I kliknij „OK”.)
źródło
Zrób kopię arkusza, z którego chcesz przenieść arkusze, z czego w takim przypadku byłby WorkbookA.xlsx. Zmień nazwę, aby powiedzieć „Kopia skoroszytuA.xlsx”. Teraz otwórz ten nowy skoroszyt, a także skoroszyt, do którego chcesz przenieść arkusz, do którego w tym przypadku będzie WorkbookB.xlsx. Kliknij prawym przyciskiem myszy arkusze w utworzonym skoroszycie kopiowania, tj. Kopiuj WorkbookA.xlsx i wybierz „przenieś lub skopiuj”, a następnie przenieś te arkusze do WorkbookB.xlsx. Gotowe!
źródło