MEMPERBARUI:
Setelah semua detail dirangkum dan dibahas, saya menghabiskan 2 jam yang adil untuk memeriksa opsi, dan pembaruan ini adalah untuk menandai semua i
.
Persiapan
Pertama-tama, saya melakukan penginstalan Office 2010 x86 yang bersih pada mesin virtual Clean Win7 SP1 Ultimate x64 yang didukung oleh VMWare (ini adalah rutinitas biasa untuk tugas pengujian sehari-hari saya, jadi saya memiliki banyak dari mereka yang disebarkan).
Kemudian, saya hanya mengubah opsi Excel berikut (yaitu semua yang lain dibiarkan apa adanya setelah instalasi):
Advanced > General > Ask to update automatic links
diperiksa :
Trust Center > Trust Center Settings... > External Content > Enable All...
(meskipun yang terkait dengan Koneksi Data kemungkinan besar tidak penting untuk kasus ini):
Prasyarat
Saya menyiapkan dan menempatkan ke C:\
buku kerja persis seperti @Siddharth Rout
saran dalam jawaban yang diperbarui (dibagikan untuk kenyamanan Anda): https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx Buku yang ditautkan itu kemudian dihapus sehingga tautan di dibagikan buku tidak tersedia (pasti).
Pembukaan Manual
File bersama di atas menunjukkan saat membuka (memiliki opsi Excel yang tercantum di atas) 2 peringatan - dalam urutan tampilan:
PERINGATAN # 1
Setelah mengklik, Update
saya berharap mendapat yang lain:
PERINGATAN # 2
Jadi, saya kira lingkungan pengujian saya sekarang sangat mirip dengan OP
) Sejauh ini sangat bagus, akhirnya kita lanjutkan ke
Pembukaan VBA
Sekarang saya akan mencoba semua opsi yang memungkinkan selangkah demi selangkah untuk memperjelas gambar. Saya hanya akan membagikan baris kode yang relevan untuk kesederhanaan (file sampel lengkap dengan kode akan dibagikan pada akhirnya).
1. Aplikasi Sederhana. Buku Kerja. Terbuka
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Tidak mengherankan - ini menghasilkan peringatan KEDUA, seperti untuk pembukaan manual di atas.
2. Application.DisplayAlerts = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Kode ini diakhiri dengan PERINGATAN # 1 , dan salah satu opsi yang diklik ( Update
/ Don't Update
) TIDAK menghasilkan peringatan lebih lanjut, yaitu Application.DisplayAlerts = False
menekan PERINGATAN # 2 .
3. Application.AskToUpdateLinks = False
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
Sebaliknya DisplayAlerts
, kode ini berakhir dengan PERINGATAN # 2 saja, yaitu Application.AskToUpdateLinks = False
menyembunyikan PERINGATAN # 1 .
4. Salah Ganda
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Rupanya, kode ini berakhir dengan menekan PERINGATAN KEDUA .
5. UpdateLinks: = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
Akhirnya, solusi 1 baris ini (awalnya diusulkan oleh @brettdj
) bekerja dengan cara yang sama seperti Double False: TIDAK ADA PERINGATAN yang ditampilkan!
Kesimpulan
Kecuali praktik pengujian yang baik dan kasus terselesaikan yang sangat penting (saya mungkin menghadapi masalah seperti itu setiap hari saat mengirim buku kerja saya ke pihak ketiga, dan sekarang saya siap), 2 hal lagi yang dipelajari:
- Opsi Excel PENTING, apa pun versinya - terutama ketika kita membahas solusi VBA.
- Setiap masalah memiliki solusi yang singkat dan elegan - bersama dengan solusi yang tidak jelas dan rumit. Satu lagi bukti untuk itu!)
Terima kasih banyak kepada semua orang yang berkontribusi pada solusi, dan terutama OP yang mengajukan pertanyaan. Semoga penyelidikan saya dan langkah-langkah pengujian yang dijelaskan secara menyeluruh bermanfaat tidak hanya untuk saya)
File contoh dengan contoh kode di atas dibagikan (banyak baris yang sengaja dikomentari): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
Jawaban asli (diuji untuk Excel 2007 dengan opsi tertentu):
Kode ini berfungsi dengan baik untuk saya - ini mengulang SEMUA file Excel yang ditentukan menggunakan wildcard di InputFolder
:
Sub WorkbookOpening2007()
Dim InputFolder As String
Dim LoopFileNameExt As String
InputFolder = "D:\DOCUMENTS\" 'Trailing "\" is required!
LoopFileNameExt = Dir(InputFolder & "*.xls?")
Do While LoopFileNameExt <> ""
Application.DisplayAlerts = False
Application.Workbooks.Open (InputFolder & LoopFileNameExt)
Application.DisplayAlerts = True
LoopFileNameExt = Dir
Loop
End Sub
Saya mencobanya dengan buku-buku dengan tautan eksternal yang tidak tersedia - tanpa peringatan.
File sampel: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm