Masalah penyalinan lain di Excel:
Bagaimana saya bisa menyalin lembar kerja dari WorkbookA.xlsx ke WorkbookB.xlsx tanpa lembar kerja yang disalin masih merujuk WorkbookA.xlsx misalnya rumus =B!23
menjadi =[WorkbookA.xlsx]!B!23
ketika disalin.
Saya ingin mempertahankan referensi sel "relatif" alih-alih referensi sel "absolut" (saya akan menemukan terminologi ini di dunia Excel jika belum ada).
Alternatif lain yang mungkin saya tidak dapat membuatnya bekerja adalah opsi untuk menempelkan "nilai" sel saja. Excel memperlakukan "nilai" sebagai nilai yang dihitung alih-alih formula aktual dalam sel. Jika saya memilih rumus tempel, itu masih memberikan referensi absolut.
Lebih Lanjut Tentang Mengapa Saya Membutuhkan Ini: Saya memiliki xlsx produksi yang digunakan untuk operasi harian. Kami terus-menerus perlu membuat "pemutakhiran" untuk xlsx ini sehingga satu orang dapat membuat salinan dan perubahannya di sana untuk satu lembar. Bersamaan, orang lain mungkin juga membuat perubahan ke lembar lain. Mengingat bahwa sheet ini tidak memiliki sel dependen pada sheet lain , seperti laporan ringkasan, diinginkan bagi kita untuk hanya menyalin dan menggabungkan sheet kembali ke xlsx asli. Tetapi referensi "absolut" memberikan banyak masalah.
select all - copy - paste special - values
hanya memiliki nilai. Jika Anda ingin melakukan semuanya selama penyalinan alih-alih mengandalkan pengguna akhir untuk melakukan langkah-langkah itu, well, saya telah mengerjakannya. Beri tahu kami secara pasti bagaimana Anda menginginkannya dalam hal WorkbookA (atau 1) dan WBB (2) dan sheetJawaban:
Coba gunakan Ctrl+ ~untuk menampilkan formula. Kemudian gunakan Ctrl+ Auntuk memilih semuanya, salin dan tempel ke notepad.
Terakhir, salin dari notepad dan tempel ke buku kerja Anda yang lain.
sumber
Dalam banyak kasus, saya merasa lebih mudah untuk melakukan hal berikut:
[WorkbookA.xlsx]!
sumber
Jawaban yang tidak ditandatangani tepat di bawah yang satu ini adalah yang bekerja untuk saya, dengan variasi yang sangat sedikit.
Buat dan simpan spreadsheet tujuan.
Gunakan "pindahkan", "salin", atau seret halaman Anda dengan rumus ke dalam spreadsheet baru. Ini meninggalkan rumus pada halaman baru yang menunjuk ke lembar kerja yang lama. Kemudian simpan lembar kerja baru di lokasi yang sama dengan lembar kerja lama.
Lalu pergi ke Tab Data> klik Edit Tautan. Opsi tidak akan aktif kecuali ada tautan di halaman.
Dalam dialog yang menghasilkan, pilih nama file sumber dan klik "Ubah Sumber."
Dari dialog file-terbuka yang muncul berikutnya, pilih nama spreadsheet baru.
Klik Tutup dan Anda selesai.
sumber
Atau cukup lakukan hal berikut:
Konversikan ini:
untuk ini:
dan tidak ada lagi perubahan pada referensi Anda saat Anda menyalin di antara lembar kerja.
Jika Anda tidak memiliki banyak lembar referensi, alternatif lain adalah menggunakan
dan masukkan nama lembar referensi di sel B1. Sekarang Anda hanya memiliki satu sel untuk diperbarui ketika disalin ke spreadsheet baru.
sumber
INDIRECT
adalah rumus yang mudah menguap sehingga akan dihitung ulang setiap waktu (bukan hanya saat diedit) yang benar-benar dapat memperlambat buku kerja yang lebih rumit, jadi gunakan dengan hatiKode di bawah ini dapat disesuaikan dengan kebutuhan Anda. Semua rumus dari lembar aktif
wb1
dan menerapkannya ke lembar di buku kerja baru. Rumus diterapkan sebagaiString
s, jadi tidak ada penyisipan referensi ke buku kerja asli. Juga, kode ini sangat cepat karena tidak menggunakan clipboard dan tidak memerlukan perulangan melalui sel.sumber
Karena 99% dari tanggapan bahkan tidak menjawab pertanyaan awal, inilah jawaban yang tepat.
Salin lembar dari file asli (Original.xlsx) ke file Excel baru (New.xlsx) seperti biasa. Secara umum, saya klik kanan pada nama dan pilih "Pindahkan atau Salin ...".
Simpan file kedua - yang baru dibuat (New.xlsx).
Di file baru, di bawah Data, klik "Edit Tautan"
Di jendela sembul, pilih "Ubah Sumber ..."
Temukan file (New.xlsx) dan klik Open.
Semua referensi ke yang asli (Original.xlsx) akan dihapus.
DIBUAT!
sumber
Ini bekerja untuk saya.
sumber
Kedua buku kerja harus terbuka agar ini berfungsi . Anda menjalankan makro ini dan itu akan menyalin
workbookA!sheet
1 keworkbookB!sheet1
dan kemudian mengganti semuaworkbookA
referensi. Itu kasar, tetapi berhasil . Anda jelas dapat mengubah kode agar cocok dengan nama WorkbookA.xlsx Anda, tetapi pastikan kode tersebut memiliki ekstensi yang benar dan tetap dalam tanda kutip.Oh, untuk membuat makro, jika Anda tidak tahu, tekan alt + F11untuk membuka Editor Visual Basic. Kemudian klik kanan pada WBA
insert - module
dan salin dan tempel kode di bawah ini ke dalam modul. Lalu tekan F5untuk menjalankan makro. Jika makro tidak akan berjalan, itu mungkin karena makro tidak diaktifkan, jadi silakan simpan dan buka kembali dan ketika diminta untuk mengaktifkan makro, aktifkan.sumber
CTRL+H
sekarang, tetapi semua ini tidak memperbaiki refences untuk kontrol misalnya tombol, dropdown dan semacamnya; dan rentang bernama.Saya mencapai ini dengan menyalin sel ke lembar kerja baru seperti biasa, kemudian melakukan mencari ganti untuk menghapus jalur file lama dalam formula.
Misal, jika rumus pertama adalah
=J2
dan ini menjadi=[filepath]J2
, maka lakukan saja pencarian dan ganti seluruh spreadsheet baru untuk[filepath]
dan ganti dengan apa pun. Ini menghapusnya dan mengembalikan formula ke=J2
.Tidak diperlukan VB!
sumber
Saya mengalami masalah yang sama. Alasan rumus disisipkan dengan tautan ke WBA adalah bahwa tab (lembar) yang saya kerjakan di WBA dinamai berbeda dari yang ada di WBB. Bagi saya, itu selalu "lembar terakhir" tetapi yang satu bernama 'MinFlow' dan yang lainnya bernama 'NormalFlow'. Saya mengganti nama menjadi 'Hasil' dan salin / tempel berfungsi seperti yang saya inginkan - "tempel relatif".
sumber
Pilih sel yang ingin Anda pindahkan. Sekarang coba pindahkan dengan menyeret dan melepaskan ke lembar kerja yang berbeda (tab berbeda).
Saya tahu, itu bergulir. Inilah bagian yang sulit: cukup tekan cmd (mac) atau alt (win) dan itu akan membiarkan Anda menjatuhkan sel ke tab lain.
sumber
Hai di sini adalah solusi sederhana untuk masalah ini:
CTRL+F
dan pilih tab ganti.Replace with
bidang, tekanReplace All
.Voila - sudah selesai.
sumber
'Trik' lain - sebelum menyalin lembar kerja sumber, ganti semua kualifikasi rumus
=
dengan set karakter lainnya (katakanlah###=
).Salin lembar kerja, lalu setelah salinan, ganti kembali kualifikasi rumus (ganti
###=
dengan=
).Pastikan bahwa setiap lembar referensi dalam formauls juga disalin ke lembar baru sebelum lembar referensi.
sumber
Salin lembar seperti biasa. (klik kanan ke tab dan pergi ke 'pindah atau salin') Ini untuk memformat.
Salin semua sel dari lembar asli (menggunakan Ctrl+ Aatau segitiga kiri atas dan Ctrl+ C)
Rekatkan sebagai Nilai ke buku kerja baru (di atas lembar "langkah-1") (Opsi Tempel> 123)
sumber
Jika Anda perlu melakukan ini secara otomatis karena Anda menarik lembaran dalam program VBA. Gunakan ini:
Ubah saja "String yang ditemukan dalam nama buku sumber." untuk mencocokkan tautan lama yang ingin Anda ganti. Anda dapat menghapus itu jika memblokir jika Anda ingin mengganti semua tautan.
sumber
Buka kedua buku kerja. Di buku kerja sumber (WorkbookA.xlsx), pilih lembar yang ingin Anda salin. Klik kanan pada tab sheet dan pilih "Pindahkan atau Salin ...". Di kotak dialog "Pindahkan atau Salin", pilih "WorkbookB.xlsx" di menu tarik-turun "Ke buku", pilih di mana di buku itu Anda ingin meletakkannya, dan centang "Buat salinan". (Dan klik "OK".)
sumber
Buat salinan sheet yang ingin Anda pindahkan sheet dari mana ini adalah WorkbookA.xlsx. Ganti nama itu menjadi "Salin WorkbookA.xlsx". Sekarang buka buku kerja baru ini dan juga buku kerja yang ingin Anda pindahkan lembar yang dalam hal ini adalah WorkbookB.xlsx. Klik kanan pada lembar di buku kerja salin yang Anda buat yaitu Salin WorkbookA.xlsx dan pilih 'pindahkan atau salin' dan kemudian pindahkan lembar ini ke WorkbookB.xlsx. Kamu selesai !
sumber