GÜNCELLEME:
Tüm ayrıntılar özetlendikten ve tartışıldıktan sonra, seçenekleri kontrol etmek için 2 saat harcadım ve bu güncelleme tüm i
e- postaları işaretlemek .
Hazırlıklar
Her şeyden önce, VMWare tarafından desteklenen Clean Win7 SP1 Ultimate x64 sanal makinesine temiz bir Office 2010 x86 kurulumu yaptım (bu, günlük test görevlerim için olağan bir rutindir, bu yüzden birçoğunu konuşlandırdım).
Ardından, yalnızca aşağıdaki Excel seçeneklerini değiştirdim (yani diğerlerinin tümü kurulumdan sonra olduğu gibi kaldı):
Advanced > General > Ask to update automatic links
kontrol edildi :
Trust Center > Trust Center Settings... > External Content > Enable All...
(Veri Bağlantılarıyla ilgili olan büyük olasılıkla vaka için önemli olmasa da):
Ön koşullar
Güncellenmiş cevabındaki önerilere göre C:\
tam olarak bir çalışma kitabını hazırladım ve yerleştirdim @Siddharth Rout
(size kolaylık sağlamak için paylaşıldı): https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx Bağlantılı kitap daha sonra silindi, böylece paylaşılan içindeki bağlantı kitap kullanılamıyor (elbette).
Manuel Açılış
Yukarıdaki paylaşılan dosya açıldığında (yukarıda listelenen Excel seçeneklerine sahip) 2 uyarı gösterir - görünüm sırasına göre:
UYARI # 1
Tıkladıktan sonra Update
beklediğim başka bir tane:
UYARI # 2
Öyleyse, sanırım test ortamım artık OP
's) ile hemen hemen benzer. Şimdiye kadar çok iyi, sonunda
VBA Açılışı
Şimdi, resmi netleştirmek için tüm olası seçenekleri adım adım deneyeceğim. Basitlik için yalnızca ilgili kod satırlarını paylaşacağım (kodun bulunduğu eksiksiz örnek dosya sonunda paylaşılacaktır).
1. Basit Uygulama.Workbooks.Open
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Şaşırtıcı değil - bu, yukarıdaki manuel açmada olduğu gibi İKİ uyarıyı da üretir.
2. Application.DisplayAlerts = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Bu kod UYARI # 1 ile biter ve tıklanan her iki seçenek de ( Update
/ Don't Update
) başka uyarılar YOKTUR, yani UYARI # 2'yiApplication.DisplayAlerts = False
bastırır .
3. Application.AskToUpdateLinks = Yanlış
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
Bunun tersine DisplayAlerts
, bu kod yalnızca UYARI # 2 ile sonuçlanır , yani UYARI # 1'iApplication.AskToUpdateLinks = False
bastırır .
4. Çifte Yanlış
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Görünüşe göre, bu kod İKİ UYARILARIN da bastırılmasıyla sonuçlanıyor .
5. Güncelleme Bağlantıları: = Yanlış
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
Son olarak, bu 1 satırlık çözüm (ilk olarak tarafından önerilmiştir @brettdj
) Double False ile aynı şekilde çalışır: HİÇBİR UYARI gösterilmez!
Sonuçlar
İyi bir test uygulaması ve çok önemli çözülmüş vakalar dışında (çalışma kitaplarımı 3. tarafa gönderirken her gün bu tür sorunlarla karşılaşabilirim ve şimdi hazırım), öğrenilen 2 şey daha:
- Excel seçenekleri, sürümden bağımsız olarak ÖNEMLİDİR - özellikle VBA çözümlerine geldiğimizde.
- Her sorunun kısa ve zarif bir çözümü vardır - açık olmayan ve karmaşık olanla birlikte. Bunun için sadece bir kanıt daha!)
Çözüme katkıda bulunan herkese ve özellikle soruyu gündeme getiren OP'ye çok teşekkürler. Umarım araştırmalarım ve ayrıntılı olarak açıklanan test adımları sadece bana yardımcı olmadı)
Yukarıdaki kod örneklerine sahip örnek dosya paylaşılır (birçok satır kasıtlı olarak yorumlanır): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
Orijinal yanıt ( belirli seçeneklerle Excel 2007 için test edilmiştir ):
Bu kod benim için iyi çalışıyor - joker karakterler kullanılarak belirtilen TÜM Excel dosyalarının içinde dolaşıyor 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
Dış bağlantıları olmayan kitaplarla denedim - uyarı yok.
Örnek dosya: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm